处理IDataReader给出运行时错误?

时间:2015-09-08 20:45:43

标签: c# database-connection dispose using idatareader

我正在尝试从Sybase数据库中获取数据。但是,当我尝试disposeclose连接时,它会抛出异常SQL Runtime Error ...???。没有内在的例外,没有其他细节。这是我正在尝试的代码

try
{
    List<Dataclass> lstDataclass = new List<Dataclass>();
    using (IDataReader reader = this.ExecuteReader(CommandType.StoredProcedure, Constants.ProcedureName, lstSQLParameter))
    {
        if (reader != null)
        {
           while (reader.Read())
           {
              lstDataclass.Add(ReadData(reader) as Dataclass);
           }
        }
    }//Here is exception is thrown
    return lstDataclass ;
}
catch (Exception ex)
{
      Logging.CDSLogger.LogEntry(MethodBase.GetCurrentMethod(), ex.Message, TraceEventType.Error);
      throw;
}

此代码抛出异常,如上所述,stacktrace为as,

at iAnywhere.Data.SQLAnywhere.SAInternalConnection.CheckException(Int32 idEx, Boolean freeConn)
at iAnywhere.Data.SQLAnywhere.SAInternalConnection.ReturnToPool()
at iAnywhere.Data.SQLAnywhere.SAConnectionPool.ReturnConnection(SAInternalConnection connection)
at iAnywhere.Data.SQLAnywhere.SAConnectionPoolManager.ReturnConnection(SAInternalConnection connection)
at iAnywhere.Data.SQLAnywhere.SAConnection.Dispose(Boolean disposing)
at iAnywhere.Data.SQLAnywhere.SAConnection.Close()
at iAnywhere.Data.SQLAnywhere.SADataReader.myDispose(Boolean disposing)
at iAnywhere.Data.SQLAnywhere.SADataReader.myDispose()
at iAnywhere.Data.SQLAnywhere.SADataReader.Close()
at BusinessLayer.BusinessCheckRegisterTable.GetAllDataForNacha(EntityEDIScreenRemittanceExport entityScreenRE) in 

如果我删除using,那么它运行正常。即使我尝试Close()连接,也会抛出相同的异常。这只发生在sybase而不是任何其他数据库。

任何帮助都会很棒。如果有任何令人困惑或不可理解的事情,请随时发表评论。

0 个答案:

没有答案
相关问题