如何处理 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/