MS Access - десятичный столбец и сопоставление с десятичным значением .NET вызывает «Несоответствие типов данных в выражении критериев» - PullRequest
0 голосов
/ 23 января 2011

Я пытаюсь вставить данные десятичного значения .NET в столбец MS Access 'десятичное'

Столбец MS Access определен как десятичное число - точность 18 масштаб 2

Создается OleDbParameter thisпуть:

                var p3 = new OleDbParameter();
                p3.DbType = System.Data.DbType.Decimal;
                p3.Value = 10.12m;
                p3.Precision = 18;
                p3.Scale = 2;

После выполнения команды я получаю исключение «Несоответствие типов данных в выражении критерия».

Что я делаю не так?

MS Access - 2007, ноdababase находится в старом формате файла * .mdb.

Ответы [ 2 ]

0 голосов
/ 25 января 2011

попробуйте просто установить значение и посмотреть, принимает ли оно:

var p3 = new OleDbParameter();
//p3.DbType = System.Data.DbType.Decimal;
p3.Value = 10.12;
//p3.Precision = 18;
//p3.Scale = 2;

или попробуйте установить значение в целое число.Я думаю, проблема в OleDbParameter или System.Data.DbType.Decimal

0 голосов
/ 23 января 2011

Я бы предложил добавить m к вашему значению.В C # m указывается десятичное значение вместо двойного.

            var p3 = new OleDbParameter();
            p3.DbType = System.Data.DbType.Decimal;
            p3.Value = 10.12m;//added the m here to specify the decimal value.
            p3.Precision = 18;
            p3.Scale = 2;
...