私はIDataReader
からDataTable
またはDataSet
を取得しようとしているが、私は失敗しています。ここでは、コードです:IDataReaderからDataTableを取得するにはどうすればよいですか?
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);
}
}
}
}
それは、3つの異なるデータベース(データベースによると、接続の特定のタイプを取得しますCreateConnection(provider, connectionString)
方法)で動作するので、私はIDbConnection
とIDbCommand
を使用しています。 私のクエリは、(Int64型として)IDを取得し、(小数など)DocNumberが、私は小数点値を取得しようとするたびに、それはメッセージとOverflowException
スロー:「変換オーバーフロー」どちらの価値も私には重要ですが、私はこれらの価値をどのように得るのか分かりません。
実は、私はDataTable
に変換しようとしていないよコードは、私は例外なく2の値を取得する必要があります。
いくつかお手伝いしますか?
TBDOCUMENTテーブルのDOCNUMBERの列タイプは何ですか?整数の場合、int value = reader.GetInt ... –
こんにちはDavide、TBDOCUMENTのDOCNUMBERの型は10進数(30,0)です。 –