我正在尝试从 a 中获取or DataTable
,但我失败了。这是代码:DataSet
IDataReader
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(作为十进制),但每次我尝试获取十进制值时,它都会抛出OverflowException
一条消息:“转换溢出。” 这两个值对我都很重要,但我不知道如何获得这些值。
实际上,我并没有尝试转换为 a 的代码DataTable
,我必须毫无例外地获取两者的值。
一些帮助?