Я уже вижу много тем, но ни одна из них не решила мою проблему.
Я из Словении.Я использую английскую версию Access 2007. Использую c #.
Все мои настройки локали установлены на словенский.
У меня есть база данных доступа с десятичным столбцом.Когда я пытаюсь сохранить в него 5,4
, он игнорирует и сохраняет 54
.Если я пытаюсь сохранить в нем 5.4
, он также игнорируется.и хранит 54
.
Я использую таблицы данных для манипулирования данными в коде.
public static DataSet DbData;
public static DataRow DbRow;
Я пробовал следующие решения, ни одно из них не работает (всегда для ввода используется 5,4
):
DbRow[6] = Convert.ToDecimal(txtNovCena.Text); // value of DbRow[6] is 5,4
DbRow[6] = Decimal.Parse(txtNovCena.Text, new System.Globalization.CultureInfo("NL-nl").NumberFormat); // value of DbRow[6] is 5,4
DbRow[6] = Decimal.Parse(txtNovCena.Text, new System.Globalization.CultureInfo("EN-us").NumberFormat); // value of DbRow[6] is 54
DbRow[6] = Decimal.Parse(txtNovCena.Text, new System.Globalization.CultureInfo("sl-SI").NumberFormat); // value of DbRow[6] is 5,4
DbRow[6] = txtNovCena.Text.Replace(",", "."); // value of DbRow[6] is 54
Что хранится в БД после
DbAdapter.Update(DbData);
всегда 54
.
Что еще можно попробовать?
РЕДАКТИРОВАТЬ: Кроме того, если я пытаюсь запустить этот оператор SQL непосредственно в Access:
UPDATE Sifrant
SET cena = 1,1
WHERE ID = 2;
Я получаю синтаксическую ошибку в операторе
Но он работает с:
UPDATE Sifrant
SET cena = 1.1
WHERE ID = 2;
Десятичный разделитель отображается как в графическом интерфейсе открытого файла accdb.