如何通过外部C# ADO.Net
运行异步调用?
如何异步执行查询,BeginExecuteQuery ??。
你有一个例子可以运行......
我有一个正在执行多个插入语句的存储过程,这些值是从表中选择的,因为它们是独立的,TABLE_A, TABLE_B
,我想执行...
EXEC ('SELECT * FROM .. INTO TABLE_A')
and
EXEC ('SELECT * FROM .. INTO TABLE_B')
答案 0 :(得分:0)
如果我理解你想要正确做什么,那么是的,你可以对3个命令,ExecuteReader,ExecuteNonQuery和ExecuteXmlReader进行异步调用。 asynch版本有一个Begin / End部分,例如BeginExecuteReader,EndExecuteReader,可以用于你所追求的目标。在如何处理这些命令的返回方面,您有几个选项。
因此,您可以使用sqlcommand.BeginExecuteReader触发多个查询,然后您可以选择在发出sqlcommand.EndExecuteReader时如何处理/知道它何时完成。有一些描述的选项简要概述:
每个异步选项都有优点/缺点,具体取决于您想要实现的目标。使用上面的数字2回调选项,pseduo-code看起来像:
command = (Build all sql command stuff)
AsyncCallback callback = new AsyncCallback(HandleSqlCallback);
command.BeginExecuteReader(callback, command);
command.BeginExecuteReader()
method HandleSqlCallback(IAsyncResult result) {
do stuff when sql done
command.EndExecuteReader(result)
}
微软有比这更好,更完整的示例,但这可以让您对格式有一个大概的了解。 SqlCommand.BeginExecuteReader Method
的MSDN链接