から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);
}
}
}
}
私は and を使用IDbConnection
しています。IDbCommand
これは、3 つの異なるデータベースで動作するためです (メソッドCreateConnection(provider, connectionString)
は、データベースに応じて特定の種類の接続を取得します)。私のクエリは ID (Int64 として) と DocNumber (Decimal として) を取得しますが、10 進数値を取得しようとするたびに、OverflowException
「変換オーバーフロー」というメッセージがスローされます。どちらの値も私にとって重要ですが、これらの値を取得する方法がわかりません。
実際には、コードを に変換しようとしていないためDataTable
、例外なく 2 つの値を取得する必要があります。
手助け?