当前位置:首页 > 行业动态 > 正文

c#mysql数据库增删改查

在C#中,使用MySql.Data库可以实现对MySQL数据库的增删改查操作。

C#中操作MySQL数据库进行增删改查,主要涉及到使用MySqlConnectionMySqlCommand等类,以下是详细的步骤和示例代码:

准备工作

1、安装MySQL数据库:确保已经安装了MySQL数据库,并创建了相应的数据库和表,创建一个名为mydb的数据库,并在其中创建一个名为mytable的表,包含id(主键)、column1column2等字段。

2、添加引用:在C#项目中,需要添加对MySql.Data.MySqlClient命名空间的引用,可以通过NuGet包管理器安装MySql.Data库来实现。

3、配置连接字符串:在项目的配置文件(如App.config)中配置MySQL数据库的连接字符串,包括服务器地址、数据库名、用户名和密码等信息。

c#mysql数据库增删改查  第1张

 <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}");
                }
            }
        }
    }
}

在实际应用中,还需要考虑异常处理、事务管理等方面的问题,以确保数据库操作的安全性和可靠性,根据具体的业务需求,还可以对上述代码进行进一步的优化和扩展。

0