.NET连接MySQL需安装MySql.Data,配置连接字符串后,通过MySqlConnection和MySqlCommand实现增删改查,使用参数化查询并确保连接打开及资源释放。

.NET 连接 MySQL 数据库并执行增删改查(CRUD)操作,主要依赖于 MySql.Data 或更现代的 MySqlConnector 类库。下面以常用的 MySql.Data 为例,介绍如何在 .NET(如 .NET 6+ 或 .NET Framework)项目中连接 MySQL 并实现基本的 CRUD 操作。
安装 MySQL 数据提供程序
在开始前,需要通过 NuGet 安装 MySQL 的 ADO.NET 驱动:
- 打开项目目录,在命令行运行:
dotnet add package MySql.Data - 或在 Visual Studio 的 NuGet 包管理器中搜索并安装 MySql.Data
配置数据库连接字符串
在 appsettings.json 或代码中定义连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=testdb;Uid=root;Pwd=yourpassword;"
}
}
如果使用 appsettings.json,需在程序启动时读取配置。例如在控制台应用中可手动写入连接字符串:
执行 CRUD 操作示例
以下是一个简单的类,演示如何使用 MySqlConnection、MySqlCommand 实现基本操作。假设有一张表:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) );using MySql.Data.MySqlClient; class MySqlCrud { private string _connectionString; public MySqlCrud(string connectionString) { _connectionString = connectionString; } // 插入数据(Create) public void InsertUser(string name, string email) { string query = "INSERT INTO users (name, email) VALUES (@name, @email)"; using var connection = new MySqlConnection(_connectionString); using var cmd = new MySqlCommand(query, connection); cmd.Parameters.AddWithValue("@name", name); cmd.Parameters.AddWithValue("@email", email); connection.Open(); cmd.ExecuteNonQuery(); Console.WriteLine("用户已插入"); } // 查询数据(Read) public void GetAllUsers() { string query = "SELECT id, name, email FROM users"; using var connection = new MySqlConnection(_connectionString); using var cmd = new MySqlCommand(query, connection); connection.Open(); using var reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine($"ID: {reader["id"]}, 名字: {reader["name"]}, 邮箱: {reader["email"]}"); } } // 更新数据(Update) public void UpdateUser(int id, string name, string email) { string query = "UPDATE users SET name = @name, email = @email WHERE id = @id"; using var connection = new MySqlConnection(_connectionString); using var cmd = new MySqlCommand(query, connection); cmd.Parameters.AddWithValue("@name", name); cmd.Parameters.AddWithValue("@email", email); cmd.Parameters.AddWithValue("@id", id); connection.Open(); int rowsAffected = cmd.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} 行被更新"); } // 删除数据(Delete) public void DeleteUser(int id) { string query = "DELETE FROM users WHERE id = @id"; using var connection = new MySqlConnection(_connectionString); using var cmd = new MySqlCommand(query, connection); cmd.Parameters.AddWithValue("@id", id); connection.Open(); int rowsAffected = cmd.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} 行被删除"); } }
调用示例
在 Main 方法中使用上述类:
static void Main(string[] args) { string connStr = "Server=localhost;Database=testdb;Uid=root;Pwd=yourpassword;"; var crud = new MySqlCrud(connStr); crud.InsertUser("张三", "zhangsan@example.com"); crud.GetAllUsers(); crud.UpdateUser(1, "李四", "lisi@example.com"); crud.DeleteUser(1); }基本上就这些。只要确保 MySQL 服务运行、连接信息正确,并使用参数化查询防止 SQL 注入,就能安全地完成 CRUD 操作。不复杂但容易忽略细节,比如记得调用 Open() 和使用 using 确保资源释放。










