2012-04-26 2 views
0

В последнее время возникла проблема - мы сталкиваемся с исключением, когда пытаемся установить значение в нашей таблице данных. Исключение составляетODP.Net - столбец Oracle NUMBER (11,6) - это System.Double в таблице данных

System.ArgumentException: строка ввода не была в правильном формате. Не удалось сохранить < 42.356> в столбце COLUMN_NAME. Ожидаемый тип - Double. ---> System.FormatException: строка ввода не была в правильном формате.

Мы используем версию oracle client - dll 4.112.2.0. В базе данных столбец COLUMN_NAME имеет тип NUMBER (11,6).

Мы создаем таблицу данных, используя oracledataadapter.FillSchema method. Мое первоначальное понимание заключалось в том, что столбец данных будет иметь тип данных System.Decimal. Однако столбец данных создается как System.Double - отсюда исключение. Еще более странная проблема заключается в том, что это исключение не сообщается в нашей базе данных разработчиков, базе данных QA или интеграции env, но только в одной конкретной клиентской базе данных.

Разве столбцы данных создаются как двойные правильно? * На что еще я могу смотреть? *

ответ

0

Является ли клиент, о котором идет речь, в стране, где десятичный разделитель является запятой, например. Германия, где должно быть 42 356? Похоже, что вы могли столкнуться с проблемой культуры при преобразовании строки в double без указания явного формата.

Смежные вопросы