在.net中操作mysql需先安装mysql.Data驱动,配置连接字符串后使用MySqlConnection建立连接,通过MySqlCommand执行参数化CRUD操作,并用try-catch处理异常,确保安全与稳定。

在.NET环境中连接MySQL数据库并执行增删改查(CRUD)操作,主要依赖于MySQL官方提供的MySql.Data驱动。以下是完整、实用的操作步骤和代码示例,帮助你快速实现数据库交互。
1. 安装MySQL Connector/NET
要让.NET项目支持MySQL,需先安装MySQL官方的.NET驱动:
- 使用NuGet包管理器安装MySql.Data
- 在visual studio中打开“工具” → “NuGet包管理器” → “管理解决方案的NuGet程序包”
- 搜索MySql.Data并安装,或使用Package Manager console运行:
Install-Package MySql.Data
2. 配置数据库连接字符串
在app.config或web.config中添加连接字符串:
<connectionStrings><br> <add name="MySqlConnection" <br> connectionString="Server=localhost;Database=testdb;Uid=root;Pwd=yourpassword;" /><br></connectionStrings>
或者在代码中直接定义:
string connStr = "Server=localhost;Database=testdb;Uid=root;Pwd=yourpassword;";
3. 建立数据库连接
使用MySqlConnection类创建并打开连接:
using MySql.Data.MySqlClient;<br><br>using (var conn = new MySqlConnection(connStr))<br>{<br> conn.Open();<br> // 执行SQL操作<br>}
建议始终使用using语句确保连接正确释放。
4. 执行CRUD操作示例
假设有一张用户表:users(id, name, email)
插入数据(Create)
string sql = "INSERT INTO users (name, email) VALUES (@name, @email)";<br>using var cmd = new MySqlCommand(sql, conn);<br>cmd.Parameters.AddWithValue("@name", "张三");<br>cmd.Parameters.AddWithValue("@email", "zhangsan@example.com");<br>int rows = cmd.ExecuteNonQuery();<br>Console.WriteLine($"插入了 {rows} 行");
查询数据(Read)
string sql = "SELECT id, name, email FROM users";<br>using var cmd = new MySqlCommand(sql, conn);<br>using var reader = cmd.ExecuteReader();<br>while (reader.Read())<br>{<br> Console.WriteLine($"ID: {reader["id"]}, 名字: {reader["name"]}, 邮箱: {reader["email"]}");<br>}
更新数据(Update)
string sql = "UPDATE users SET email = @email WHERE name = @name";<br>using var cmd = new MySqlCommand(sql, conn);<br>cmd.Parameters.AddWithValue("@email", "newemail@example.com");<br>cmd.Parameters.AddWithValue("@name", "张三");<br>int rows = cmd.ExecuteNonQuery();<br>Console.WriteLine($"更新了 {rows} 行");
删除数据(delete)
string sql = "DELETE FROM users WHERE name = @name";<br>using var cmd = new MySqlCommand(sql, conn);<br>cmd.Parameters.AddWithValue("@name", "张三");<br>int rows = cmd.ExecuteNonQuery();<br>Console.WriteLine($"删除了 {rows} 行");
5. 使用参数化查询防止sql注入
所有写入操作都应使用Parameters.AddWithValue()方式传参,避免拼接SQL字符串,有效防止sql注入攻击。
6. 异常处理建议
数据库操作可能抛出MySqlException,建议包裹在try-catch中:
try<br>{<br> conn.Open();<br> // 执行命令<br>}<br>catch (MySqlException ex)<br>{<br> Console.WriteLine("数据库错误: " + ex.Message);<br>}
基本上就这些。只要安装好驱动、配置好连接、使用参数化命令,就能稳定地在.NET中操作MySQL数据库。实际开发中可结合Dapper或Entity Framework进一步简化操作。