在C#中操纵MySQL数据库,通常需要使用相关的数据库连接和操作库,以下是详细的步骤和示例代码:
在使用C#操作MySQL数据库之前,需要确保项目中已经添加了对MySql.Data
库的引用,这个库可以通过NuGet包管理器进行安装,安装完成后,需要在代码文件的顶部引入以下命名空间:
using System; using MySql.Data.MySqlClient;
要与MySQL数据库进行交互,首先需要创建一个数据库连接对象,可以使用MySqlConnection
类来创建这个连接对象,并指定连接字符串,连接字符串通常包含服务器地址、数据库名称、用户名和密码等信息。
string connectionString = "Server=localhost;Database=testdb;User Id=root;Password=123456;"; MySqlConnection connection = new MySqlConnection(connectionString);
创建好连接对象后,可以使用MySqlCommand
类来执行SQL查询,以下是一个简单的示例,演示如何执行一个查询并读取结果:
try { connection.Open(); // 打开连接 string query = "SELECT * FROM users"; // SQL查询语句 MySqlCommand command = new MySqlCommand(query, connection); // 创建命令对象 MySqlDataReader reader = command.ExecuteReader(); // 执行查询并返回数据读取器 // 遍历结果集 while (reader.Read()) { Console.WriteLine("User ID: {0}, Name: {1}", reader["id"], reader["name"]); } reader.Close(); // 关闭数据读取器 } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } finally { if (connection != null) { connection.Close(); // 关闭连接 } }
除了查询数据外,还可以使用MySqlCommand
类来执行插入、更新和删除操作,以下是一些示例代码:
插入数据:
try { connection.Open(); string insertQuery = "INSERT INTO users (name, age) VALUES (@name, @age)"; MySqlCommand insertCommand = new MySqlCommand(insertQuery, connection); insertCommand.Parameters.AddWithValue("@name", "John Doe"); insertCommand.Parameters.AddWithValue("@age", 30); insertCommand.ExecuteNonQuery(); // 执行插入操作 } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } finally { if (connection != null) { connection.Close(); } }
更新数据:
try { connection.Open(); string updateQuery = "UPDATE users SET age = @age WHERE id = @id"; MySqlCommand updateCommand = new MySqlCommand(updateQuery, connection); updateCommand.Parameters.AddWithValue("@age", 31); updateCommand.Parameters.AddWithValue("@id", 1); updateCommand.ExecuteNonQuery(); // 执行更新操作 } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } finally { if (connection != null) { connection.Close(); } }
删除数据:
try { connection.Open(); string deleteQuery = "DELETE FROM users WHERE id = @id"; MySqlCommand deleteCommand = new MySqlCommand(deleteQuery, connection); deleteCommand.Parameters.AddWithValue("@id", 1); deleteCommand.ExecuteNonQuery(); // 执行删除操作 } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } finally {