You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ADO.NET创建异步方法?同步查询方法转异步实现

同步查询方法转异步实现

要把同步的数据库查询方法改成异步版本,主要需要做以下几点调整:

  • 方法签名添加async关键字,返回类型改为Task<DataTable>,并遵循异步方法命名惯例加上Async后缀
  • 将连接打开、数据填充的同步操作替换为对应的异步方法,并通过await关键字等待异步操作完成
  • 保持原有的异常处理逻辑不变

修改后的异步代码如下:

public async Task<DataTable> ExecuteQueryAsync(string query)
{
    DataTable dt = new DataTable();
    try
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            await conn.OpenAsync();
            using (SqlCommand command = new SqlCommand(query, conn))
            {
                SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
                await dataAdapter.FillAsync(dt);
            }
        }
        return dt;
    }
    catch (Exception ex)
    {
        throw new Exception("执行查询出错: " + ex.Message);
    }
}

关键说明

  • 异步方法命名使用ExecuteQueryAsync是.NET的通用惯例,便于区分同步/异步方法
  • await conn.OpenAsync()异步打开数据库连接,避免阻塞主线程
  • await dataAdapter.FillAsync(dt)是Fill方法的异步等效实现,异步完成DataTable的填充
  • 异常处理逻辑和原同步方法一致,捕获异常后包装并重新抛出

内容的提问来源于stack exchange,提问作者Alexis Adrovez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 20:56:07