Я работаю в c # .net 2 (Visual Studio 2005 SP1), пытаясь заполнить набор данных результатами из таблицы select * from таблицы из базы данных Oracle10g. Платформа .net, IDE и база данных не могут быть изменены на этом клиентском сайте.
Я подключаюсь, используя провайдера ODP.net версия dll 2.102.2.20
Когда я запускаю команду заполнения, я получаю исключение:
Арифметическая операция привела к переполнению
Кроме того, если я попытаюсь просмотреть столбец с ошибками в конструкторе Visual Studio (Показать данные таблицы), я получу для каждой строки для этого столбца в таблице. Код работает отлично, если мой запрос выбирает другие столбцы с целыми числами, например, пропуская этот столбец.
Столбец, о котором идет речь, выглядит нормально, когда я просматриваю его в базе данных из Toad, данные выглядят так:
919,742866695572
Мне нужна точность , как это требуется для симуляции Монте-Карло.
Если вместо использования адаптера данных для заполнения таблицы данных я использую datareader и вызываю dataReader.getValue (columnIndex), я получаю ту же ошибку, но если я вызываю dataReader.GetOracleDecimal (columnIndex), то я получаю искомый результат , без ошибок.
Я бы лучше использовал адаптер данных и заполнил набор данных (обратите внимание, что это нетипизированные наборы данных, поскольку я не мог заставить автоматически сгенерированные наборы данных со строгой типизацией работать из базы данных оракула). Я не хочу использовать datareader и просматривать результаты (выбрать значения столбцов), так как я пытаюсь написать это как универсальный метод для работы во многих сценариях, независимо от количества столбцов, индекса десятичных столбцов, для которых требуются определенные принимать звонки по типу данных.
Кто-нибудь может помочь?
Могу ли я использовать новые версии библиотек ODP.net для подключения к более старой базе данных Oracle10g ? Интересно, поможет ли это.
Спасибо