ExecuteReader需要一个开放且可用的连接。连接的当前状态是连接

时间:2013-04-23 06:09:50

标签: asp.net exception odbc idatareader

我有一个ASP.NET网页。它使用4 BackgroundWorkers。每个bw都从数据库中检索一些数据。

连接数据库的代码是:

if (dbConnection.State == ConnectionState.Closed)
{
    dbConnection.Open();
}    
DataTable dt = new DataTable(); 
OdbcCommand cmd = new OdbcCommand(sqlQuery, dbConnection);
cmd.CommandTimeout = 0;
IDataReader dataReader = cmd.ExecuteReader();
dt.Load(dataReader);
dataReader.Close();
dataReader.Dispose();

在构造函数中,this.dbConnection = new OdbcConnection(networkdetails);

每个bw都使用上面的代码片段来查询数据库并检索值。代码有时非常精细。其他时候它抛出了上面给出的例外。

有关我可能做错的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

尝试处理异常,然后关闭连接。

为此,请在“Try”块中编写代码,在“Catch”块中捕获异常并关闭“Finally”块中的连接。

try{
      // Your code
}
catch
{
      // Catch exception
}
Finally
{
      // Close the connection
      dbConnection.Close();
}