2010-12-15 85 views
1

在我的C#代码中,我有一个ODBC数据读取器,它是使用参数调用存储过程的结果。 当客户运行程序时,使用while循环从数据读取器中检索结果,在某个时候,它会停止rdr.Read()命令并等待数分钟,然后继续。什么会导致OdbcDataReader挂起?

while (rdr.Read()) {Somecode...} 

什么会导致这种行为?

+1

ODBC是许多不同数据源的抽象层,不知道您连接的数据源的类型,以及有关所调用过程的详细信息,正在处理的数据的类型/数量,这是不可能的说。 – casperOne 2010-12-15 14:06:50

+0

“Read”方法可能每次调用时访问数据库,因此当数据库繁忙时可能会发生这种情况。尝试将数据读入DataTable中。 – 2010-12-15 14:13:52

回答

1

在某个时候会停止由 rdr.Read()命令,并只是 代表分钟的未定义数量和 然后继续。

因为它等待数据。基本上看数据源并找出它为什么会挂起。

读者的合同是“等待数据或抛出异常”。很明显,你的数据超长时间(或没有),数据没有流入(如你所期望的)。