我试图从一个IDataReader中获取一个DataTable或DataSet,但是我失败了。以下是代码:
我正在使用
实际上,我现在没有尝试将代码转换为
需要一些帮助吗?
:
string sql = @"SELECT ID, DOCNUMBER FROM TBDOCUMENT";
using (IDbConnection conn = CreateConnection(provider, connectionString))
{
conn.Open();
using (IDbCommand command = conn.CreateCommand())
{
command.CommandText = sql;
IDataReader reader = command.ExecuteReader();
using (reader)
{
while (reader.Read())
{
long key = reader.GetInt64(0);
decimal value = reader.GetDecimal(1);
}
}
}
}
我正在使用
IDbConnection
和IDbCommand
,因为它可以与三个不同的数据库一起工作(方法CreateConnection(provider, connectionString)
根据数据库获取特定类型的连接)。我的查询会得到一个ID(Int64)和一个DocNumber(Decimal),但每次我试图获取Decimal值时,它都会抛出OverflowException
异常并显示消息:“Conversion overflows.”这两个值对我来说都很重要,但我不知道如何获取这些值。实际上,我现在没有尝试将代码转换为
DataTable
,我必须在没有异常的情况下获取这两个值。需要一些帮助吗?