我正在编写一个程序,该程序从一个数据库中读取数据以插入/更新到另一个数据库中。部署时源数据库将是 DB2,但目前我正在使用 SQL Server 2008 R2 副本进行开发。
我正在使用 SQL Server 的 ODBC 驱动程序 11 来读取数据并且遇到异常异常。
我的代码是:
public static string ReadShortODBCColumn(OdbcDataReader reader, string columnName)
{
int column = reader.GetOrdinal(columnName);
return reader.IsDBNull(column) ? (short)0 : reader.GetInt16(column);
}
正在输出的异常是:
2013-02-06 13:09:16.7834 System.Data.Odbc.OdbcException (0x80131937)
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcDataReader.GetData(Int32 i, SQL_C sqlctype, Int32 cb, Int32& cbLengthOrIndicator)
at System.Data.Odbc.OdbcDataReader.GetData(Int32 i, SQL_C sqlctype)
at System.Data.Odbc.OdbcDataReader.internalGetInt16(Int32 i)
at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i, TypeMap typemap)
at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i)
at System.Data.Odbc.OdbcDataReader.IsDBNull(Int32 i)
at ProcessEngine.Business.Utilities.ReadShortODBCColumn(OdbcDataReader reader, String columnName)
但是当我查看正在检索的数据时,该列不为空并且看起来完全正常。我能够在网上找到的唯一类似情况与 SSIS 有关,我认为他们的解决方法不适用。
有没有人有任何想法?