什么会导致 OdbcDataReader 挂起?
Posted
技术标签:
【中文标题】什么会导致 OdbcDataReader 挂起?【英文标题】:What would cause an OdbcDataReader to hang? 【发布时间】:2010-12-15 13:54:39 【问题描述】:在我的 C# 代码中,我有一个 ODBC 数据读取器,它是使用参数调用存储过程的结果。 当客户运行程序时,在使用 while 循环从 datareader 检索结果时,在某些时候它会被 rdr.Read() 命令停止,并等待未定义的分钟数,然后继续。
while (rdr.Read()) Somecode...
什么可能导致这种行为?
【问题讨论】:
ODBC 是许多不同数据源的抽象层,不知道您要连接到的数据源的确切类型,以及有关调用过程的详细信息、数据的类型/数量正在处理中,没法说。Read
方法可能每次调用时都在访问数据库,所以你描述的可能会在数据库繁忙时发生。尝试将数据读入 DataTable。
【参考方案1】:
在某些时候它会停在 rdr.Read() 命令,待命 未定义的分钟数和 然后继续。
因为它正在等待数据。基本上看数据源,搞清楚为什么挂了。
读者的约定是“要么等待数据,要么抛出异常”。显然,您的数据源有很长的超时(或没有),并且数据没有流入(如您所料)。
【讨论】:
以上是关于什么会导致 OdbcDataReader 挂起?的主要内容,如果未能解决你的问题,请参考以下文章