.NET如何连接MySQL数据库并执行CRUD操作

来源:这里教程网 时间:2026-02-21 17:31:21 作者:

.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,需在程序启动时读取配置。例如在控制台应用中可手动写入连接字符串:

string connectionString = "Server=localhost;Database=testdb;Uid=root;Pwd=yourpassword;";

执行 CRUD 操作示例

以下是一个简单的类,演示如何使用 MySqlConnectionMySqlCommand 实现基本操作。假设有一张表:

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 确保资源释放。

相关推荐

热文推荐