Проблема передачи десятичного значения в базу данных (доступ) - PullRequest
0 голосов
/ 27 сентября 2011

Я хочу передать десятичное значение в таблицу базы данных.Когда я отправляю значение 1,5 в базу данных, тогда сохраняю значение как 15.

Code:

txtKm.Text="1,5";
zelezniceDataSet.VozniRediRow row;
row.Km = decimal.Parse(txtKm.Text);

zelezniceDataSet.VozniRedi.AddVozniRediRow(row);
vozniRediTableAdapter.Update(zelezniceDataSet.VozniRedi);

При отладке десятичного разбора значение является правильным (1.5)

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

мне кажется, что decimal.Parse игнорирует запятую ... если вы передадите "1.5", будет ли сохранено правильное значение?Если это так, то вам нужно использовать перегрузку, которая использует культуру, используемую при разборе Decimal.Parse(String, NumberStyles), и передать ей правильный стиль чисел для языка, который вы используете.

РЕДАКТИРОВАТЬ ... подробнее ..

decimal.Parse(test, CultureInfo.GetCultureInfo("EN-us").NumberFormat );

выведет 15 для test = "1,5", потому что в английском языке "," char является разделителем тысяч

decimal.Parse(test, CultureInfo.GetCultureInfo("NL-nl").NumberFormat );

выведет 1,5 для test = "1,5", потому что на нидерландском языке символ "," является десятичным разделителем

Надеюсь, это поможет:)

0 голосов
/ 27 сентября 2011

Возможно, вы захотите посмотреть на перегруженную форму десятичного числа. Пара, которая принимает опцию формата, специфичного для культуры. Мое предположение десятичное. Parse видит вашу запятую как разделитель тысяч и просто удаляет ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...