Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Access + Decimal = type mismatch / 8 сообщений из 8, страница 1 из 1
26.04.2008, 09:11
    #35281294
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
Си шарп, Access. Проблема при insert-e поля decimal, когда в региональных настройках винды стоят точки в качестве разделителя целой и дробной части. Несоответствие типов данных.
Тип в базе тоже decimal.

Вот код:

string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"test.mdb\";";
OleDbConnection connection = new OleDbConnection(ConnectionString);

string insertcommand = "INSERT INTO Test (DecimalField, Id) VALUES (?, ?)";
OleDbCommand command = new OleDbCommand(insertcommand, connection);

OleDbParameter param = new OleDbParameter("@DecimalField", 999.99M);
param.DbType = DbType.Decimal;
command.Parameters.Add(param);
command.Parameters.Add(new OleDbParameter("@Id", Guid.NewGuid()));
connection.Open();
command.ExecuteNonQuery();
string exep = ex.Message;
connection.Close();

Я так понимаю нужно изменить локаль для Access, например через connectionString, но как пока не выяснил. Может кто сталкивался?
...
Рейтинг: 0 / 0
26.04.2008, 10:56
    #35281324
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
вы с горя на ADO forum перешли?
Я ж говорю, попробуйте при вставке конвертнуть decimal в string, изменить разделитель
и попытаться вставить строку в поле decimal - Access это допускает, сам так делал, только с double
...
Рейтинг: 0 / 0
26.04.2008, 12:42
    #35281396
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
В парметр переменную типа currency передавайте и все
...
Рейтинг: 0 / 0
26.04.2008, 14:24
    #35281456
валадимир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
кстати да currency тоже пробовал с ним все нормально. Но вот что начальник скажет в понедельник узнаем :)
...
Рейтинг: 0 / 0
26.04.2008, 19:26
    #35281669
валадимир
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
Тип поменять не проблема, но вот вопросы такие есть:
Почему именно проблемы с decimal?
Почему ошибка возникает именно тогда, когда разделитель и для чисел и для денежных единиц стоит ","?
Почему когда я делаю GetSchema() - возвращается инвариантная культура?
...
Рейтинг: 0 / 0
27.04.2008, 04:36
    #35281960
Николай Ефремов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
У OleDnCommand параметры Precision и Scale устанавливать не пробовали? Вроде должно помочь.
...
Рейтинг: 0 / 0
27.04.2008, 08:34
    #35281984
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
http://www.aspnetmania.com/Forums/ForumMessage/11563.html
...
Рейтинг: 0 / 0
27.04.2008, 08:42
    #35281986
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Decimal = type mismatch
Valadimirhttp://www.aspnetmania.com/Forums/ForumMessage/11563.html

ну а я вам что говорил? :)
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Access + Decimal = type mismatch / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]