文档here说明了
开发人员必须致电 EndExecuteNonQuery方法完成 操作。
我无法找到一个很好的理由,为什么会这样,或者没有调用EndExecuteNonQuery
的结果是什么。
如果不调用将会发生什么?我不想阻止它,有没有办法在AsyncCallback
中自动调用它?
答案 0 :(得分:4)
这将做的事情如下:
所以是的:做到了
答案 1 :(得分:1)
根据定义,所有此类异步调用都不能在using块中进行,以确保连接已关闭。因此,调用EndExecutexxx是必要的。
查看反射器中的代码,我们可以看到在EndExecuteNonQuery
中关闭连接的痕迹:
SqlDataReader reader = this.CompleteAsyncExecuteReader();
if (reader != null)
{
reader.Close();
}