Ошибка при вставке записи в MS Access - PullRequest
0 голосов
/ 16 сентября 2010

В моей программе на C # есть val MyDate, который содержит сегодняшний день или ноль .

У меня есть поле даты в моем доступе 2007 - TdateOpen

Я пытаюсь вставить в базу данных так:

SQL = "insert into MyCount(TdateOpen) values ('" + MyDate +"')";

и я получаю эту ошибку:

Data type mismatch in criteria expression

в чем может быть проблема?

Ответы [ 3 ]

1 голос
/ 16 сентября 2010

Потому что в вашем SQL-запросе вы вводите дату в виде строки. Вместо String это должен быть формат даты / даты. Попробуйте окружить #.

0 голосов
/ 16 сентября 2010

Вы можете использовать параметры SQL вместо динамического встраивания значения даты в оператор.

SQL = "insert into MyCount(TdateOpen) values (?)";
var parameter = yourCommand.CreateParameter();
parameter.Value = yourDateTime;
yourCommand.Parameters.Add(parameter);

(ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: код не был скомпилирован и не протестирован, но он должен дать вам подсказку)

0 голосов
/ 16 сентября 2010

Вам необходимо убедиться, что дата указана в порядке США (мм / дд / гггг) или ANSI / ISO, независимо от того, используете ли вы тире или косую черту, предпочтительным является ANSI / ISO.

Тогда, как сказал Мадху КМ, разделителем дат в Access является хеш (#), однако ваша дата может быть нулевой, а нулевой не может быть разделен, поэтому вам придется добавить разделитель в строку даты, если дата возвращается или используйте два SQL-выражения, одно для нуля и одно для даты.

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