Я пытаюсь получить 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)
получает конкретный тип соединения в соответствии с базой данных).Мой запрос получает идентификатор (как Int64) и DocNumber (как десятичное), но каждый раз, когда я пытаюсь получить десятичное значение, он выдает OverflowException
с сообщением: «Преобразование переполнено».Оба значения важны для меня, но я не знаю, как получить эти значения.
На самом деле, код, который я не пытаюсь преобразовать в DataTable
, я должен получить значениеиз двух без исключения.
Некоторая помощь?