Я работаю в С#.net 2 (Visual Studio 2005 SP1), пытаясь заполнить набор данных результатами из select * из таблицы из базы данных Oracle10g. На этом сайте клиента можно изменить инфраструктуру .net, IDE и базу данных .
Я подключаюсь к провайдеру ODP.net, версия dll 2.102.2.20
Когда я запускаю команду fill, я получаю Exception:
Арифметическая операция привела к переполнению
Также, если я попытаюсь просмотреть столбец-нарушитель в дизайнере Visual Studio (Show Table Data), я получаю для каждой строки этого столбца в таблице. Код работает отлично, если мой запрос выбирает другие столбцы с целыми числами, например, опуская этот столбец.
Соответствующий столбец отлично выглядит, когда я просматриваю его в базе данных от Toad, данные выглядят следующим образом:
+919,742866695572
Мне нужна точность , как это требуется для моделирования monte carlo.
Если вместо использования адаптера данных для заполнения datatable я использую datareader и вызываю dataReader.getValue(columnIndex), я получаю ту же ошибку, но если я вызову dataReader.GetOracleDecimal(columnIndex), тогда я получу результат, который я ищу, нет ошибок.
Я предпочел бы использовать адаптер данных и заполнить набор данных (обратите внимание, что это нетипизированные наборы данных, поскольку я не мог получить автоматически генерируемые сильно типизированные наборы данных для работы из oracle db). Я не хочу использовать datareader и просматривать результаты (выбирать значения столбца), поскольку я пытаюсь записать это как общий метод для работы во многих сценариях, независимо от количества столбцов, индекса десятичных столбцов, которые потребуют определенного получать вызовы по типу данных.
Может ли кто-нибудь помочь? Могу ли я использовать новые версии DLL ODP.net для подключения к более старой базе данных Oracle10g? Мне интересно, поможет ли это.
Спасибо