c#mysql数据库增删改查
- 行业动态
- 2025-02-15
- 2540
在C#中操作MySQL数据库进行增删改查,主要涉及到使用MySqlConnection
、MySqlCommand
等类,以下是详细的步骤和示例代码:
准备工作
1、安装MySQL数据库:确保已经安装了MySQL数据库,并创建了相应的数据库和表,创建一个名为mydb
的数据库,并在其中创建一个名为mytable
的表,包含id
(主键)、column1
、column2
等字段。
2、添加引用:在C#项目中,需要添加对MySql.Data.MySqlClient
命名空间的引用,可以通过NuGet包管理器安装MySql.Data
库来实现。
3、配置连接字符串:在项目的配置文件(如App.config)中配置MySQL数据库的连接字符串,包括服务器地址、数据库名、用户名和密码等信息。
<connectionStrings> <add name="connStr" connectionString="server=localhost;database=mydb;uid=root;pwd=123456" providerName="MySql.Data.MySqlClient"/> </connectionStrings>
数据库连接
需要建立与MySQL数据库的连接,可以使用MySqlConnection
类来创建连接对象,并通过连接字符串指定数据库的相关信息。
string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); // 后续的增删改查操作将在这里进行 }
增加(Insert)
使用INSERT INTO
语句向表中插入新记录,可以使用MySqlCommand
对象来执行SQL命令,并通过Parameters
属性设置参数值,以防止SQL注入攻击。
string query = "INSERT INTO mytable (column1, column2) VALUES (@value1, @value2)"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@value1", "value1"); command.Parameters.AddWithValue("@value2", "value2"); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} row(s) inserted."); }
删除(Delete)
使用DELETE FROM
语句删除表中的特定记录,同样使用MySqlCommand
对象执行SQL命令,并通过Parameters
属性设置条件参数。
string query = "DELETE FROM mytable WHERE id = @id"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@id", 1); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} row(s) deleted."); }
修改(Update)
使用UPDATE
语句更新表中已有的记录,通过MySqlCommand
对象执行SQL命令,并设置相应的参数。
string query = "UPDATE mytable SET column1 = @newValue WHERE id = @id"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@newValue", "newValue"); command.Parameters.AddWithValue("@id", 1); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} row(s) updated."); }
查询(Select)
使用SELECT
语句从表中检索数据,可以使用MySqlCommand
对象执行SQL查询,并通过ExecuteReader
方法获取查询结果,遍历MySqlDataReader
对象来读取每一行数据。
string query = "SELECT * FROM mytable"; using (MySqlCommand command = new MySqlCommand(query, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32(0); string column1 = reader.GetString(1); string column2 = reader.GetString(2); Console.WriteLine($"ID: {id}, Column1: {column1}, Column2: {column2}"); } } }
以下是一个完整的示例程序,展示了如何在C#中使用上述方法对MySQL数据库进行增删改查操作:
using System; using System.Data; using MySql.Data.MySqlClient; using System.Configuration; class Program { static void Main() { string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); // 增加记录 AddRecord(connection); // 删除记录 DeleteRecord(connection); // 修改记录 UpdateRecord(connection); // 查询记录 QueryRecords(connection); } } static void AddRecord(MySqlConnection connection) { string query = "INSERT INTO mytable (column1, column2) VALUES (@value1, @value2)"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@value1", "value1"); command.Parameters.AddWithValue("@value2", "value2"); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} row(s) inserted."); } } static void DeleteRecord(MySqlConnection connection) { string query = "DELETE FROM mytable WHERE id = @id"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@id", 1); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} row(s) deleted."); } } static void UpdateRecord(MySqlConnection connection) { string query = "UPDATE mytable SET column1 = @newValue WHERE id = @id"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@newValue", "newValue"); command.Parameters.AddWithValue("@id", 1); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected} row(s) updated."); } } static void QueryRecords(MySqlConnection connection) { string query = "SELECT * FROM mytable"; using (MySqlCommand command = new MySqlCommand(query, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32(0); string column1 = reader.GetString(1); string column2 = reader.GetString(2); Console.WriteLine($"ID: {id}, Column1: {column1}, Column2: {column2}"); } } } } }
在实际应用中,还需要考虑异常处理、事务管理等方面的问题,以确保数据库操作的安全性和可靠性,根据具体的业务需求,还可以对上述代码进行进一步的优化和扩展。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:https://www.xixizhuji.com/fuzhu/27662.html