在.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进一步简化操作。 