我想要一个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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用IDbConnection,IDbCommand因为它将适用于三个不同的数据库(该方法CreateConnection(provider, connectionString)根据数据库获取特定类型的连接).我的查询得到一个ID(作为Int64)和一个DocNumber(作为十进制),但每次我尝试获取十进制值时,它会抛出OverflowException一条消息:"转换溢出." 这两个值对我来说很重要,但我不知道如何获得这些值.
实际上,代码我不是要转换为a DataTable,我必须毫无例外地得到两者的值.
一些帮助?
虽然我没有通过执行检查,但它应该工作...
// Load the data into the existing DataSet.
DataTableReader reader = GetReader();
dataSet.Load(reader, LoadOption.OverwriteChanges,
customerTable, productTable);
// Load the data into the DataTable.
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dt = new DataTable();
dt.Load(dr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8153 次 |
| 最近记录: |