c# - 如何处理 SqlCommand 结果(行)?

标签 c# .net sql ado.net asynchronous

如何处理 SqlCommand 结果(行)?换句话说,我试图完全执行 Sql Management Studio 2005 在执行包含数千行的查询时所做的事情。对我来说,看起来一旦 Sql 找到第一个结果,它就会通知 UI 并在行出现时显示它们...

我认为它可以使用 BeginExecuteReader 和 EndExecuteReader 异步完成,但是(在我的测试中)仅当结果集完成时才会调用回调方法。关于如何复制 Sql Management Studio 2005 的功能有什么想法吗?

谢谢!

最佳答案

不要执行异步操作,而只需调用 ExecuteReader,然后在结果集传入时对其进行迭代。

using(SqlCommand cmd = new SqlCommand(......))
using(SqlDataReader rdr = cmd.ExecuteReader())
{
    while(rdr.Read())
    {
        // read and interpret row
        // possibly update GUI or something
    } 
}

如果您在处理这些内容时需要更新某些 UI 或其他内容,您可以随时使用已读取的新行调用另一个方法。

马克

关于c# - 如何处理 SqlCommand 结果(行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624759/

相关文章:

.net - Linq - 更好的 `Enumerable.Except()` 运算符(性能和灵活性)?

php - 与 PHP 时间范围组 id 作斗争 - 开始时间,结束时间。请帮忙!

c# - 错误: “Unable to find the DLL xyz.dll!” Visual Studio 2010

c# - 如何禁用在 VS 2015 的 web.config 和 css 文件中显示绿色波浪线?

.net - 开放式打包约定教程/System.IO.Packaging

c# - 解析 2 位日期

MySQL查询 - 获取未购买单个产品ID所有部分的客户

sql - 无法创建文件,因为它已经存在。更改文件路径或文件名,然后重试操作

c# - ASP.NET Core 1.1 用户身份模拟

c# - 向 .NET 5.0 上的 Windows 窗体添加配置