隐藏

c# mysql 异步增删改查操作

发布:2024/3/26 22:56:45作者:管理员 来源:本站 浏览次数:557

在C#中,使用MySql.Data.MySqlClient库可以进行MySQL的异步增删改查操作。以下是一个示例代码,展示了如何使用MySqlConnection和MySqlCommand进行异步操作:


using System;

using System.Data;

using System.Threading.Tasks;

using MySql.Data.MySqlClient;


public class MySqlAsyncExample

{

   private readonly string _connectionString;


   public MySqlAsyncExample(string connectionString)

   {

       _connectionString = connectionString;

   }


   // 查询方法

   public async Task<DataTable> QueryDataAsync(string query)

   {

       using (var connection = new MySqlConnection(_connectionString))

       {

           await connection.OpenAsync();


           using (var command = new MySqlCommand(query, connection))

           {

               using (var reader = await command.ExecuteReaderAsync())

               {

                   var table = new DataTable();

                   table.Load(reader);

                   return table;

               }

           }

       }

   }


   // 插入方法

   public async Task<int> InsertDataAsync(string query)

   {

       using (var connection = new MySqlConnection(_connectionString))

       {

           await connection.OpenAsync();


           using (var command = new MySqlCommand(query, connection))

           {

               return await command.ExecuteNonQueryAsync();

           }

       }

   }


   // 更新方法

   public async Task<int> UpdateDataAsync(string query)

   {

       using (var connection = new MySqlConnection(_connectionString))

       {

           await connection.OpenAsync();


           using (var command = new MySqlCommand(query, connection))

           {

               return await command.ExecuteNonQueryAsync();

           }

       }

   }


   // 删除方法

   public async Task<int> DeleteDataAsync(string query)

   {

       using (var connection = new MySqlConnection(_connectionString))

       {

           await connection.OpenAsync();


           using (var command = new MySqlCommand(query, connection))

           {

               return await command.ExecuteNonQueryAsync();

           }

       }

   }

}


在这个示例中,每个方法都使用async关键字标记,并返回Task<T>,其中T是对应操作的结果类型。例如,QueryDataAsync方法返回一个DataTable,InsertDataAsync, UpdateDataAsync, 和 DeleteDataAsync方法返回受影响行数的任务。每个方法在操作数据库时都使用了异步方法OpenAsync, ExecuteReaderAsync, 和 ExecuteNonQueryAsync。


请确保你的项目中已经安装了MySql.Data NuGet包。