文档here指出为什么需要EndExecuteNonQuery()?
开发商必须调用 EndExecuteNonQuery方法完成 操作。
我一直没有找到一个很好的理由,为什么这是,或者什么结果不叫EndExecuteNonQuery
是。
任何洞察,如果它不被称为会发生什么?我不想阻止它,有没有办法让它在AsyncCallback
中被自动调用?
文档here指出为什么需要EndExecuteNonQuery()?
开发商必须调用 EndExecuteNonQuery方法完成 操作。
我一直没有找到一个很好的理由,为什么这是,或者什么结果不叫EndExecuteNonQuery
是。
任何洞察,如果它不被称为会发生什么?我不想阻止它,有没有办法让它在AsyncCallback
中被自动调用?
这会做这样的事情:
所以,是的:做
根据定义,这样的异步调用不能在使用块中进行,以确保连接已关闭。因此,调用EndExecutexxx是必要的。
综观反射器的代码,我们可以看到在关闭了EndExecuteNonQuery
连接的跟踪:
SqlDataReader reader = this.CompleteAsyncExecuteReader();
if (reader != null)
{
reader.Close();
}
EndExecuteNonQuery不会关闭连接... – 2010-11-11 23:36:52
有一点似乎做到这一点,请参阅我的更新。 – Aliostad 2010-11-12 00:36:27