Member 12585055 Ответов: 1

Запрос даты в ACCESS с использованием C# с micrososft server2007


Здравствуйте друзья,
Я написал программу с использованием c sharp, эта программа содержит доступ к базе данных, когда я использую query due to date, я использовал следующее выражение:


эта фраза работает правильно, когда я тестирую программу на windows7
но он не работает с Microsoft Windows server 2007 и Access2010


Мне нужна помощь, пожалуйста...

Что я уже пробовал:

AccessdataAdapter = new OleDbDataAdapter("SElect *from " + TableName + " where date= #" + Condition+"#" , AccessConnection);

1 Ответов

Рейтинг:
0

OriginalGriff

Во-первых, не делайте этого так: никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.

Вы также оставляете себя открытым для проблем с форматом даты: какой формат даты вы пытаетесь сопоставить? Помните, что когда вы передаете строковую дату в БД, она должна преобразовать ее в значение даты или времени, используя любое преобразование, которое, по ее мнению, подходит - это может быть не то же самое, что дата, которую вы намеревались использовать.

Это при условии, что ваш date столбец (и это не очень хорошее имя, дата-это зарезервированное слово, поэтому позже могут возникнуть проблемы) хранится как дата или дата-время: если он хранится как строка, то он должен точно совпадать, включая любые пробелы, различные разделители и т. д.

Поэтому используйте отладчик или запишите данные в файл, посмотрите на значения, с которыми вы пытаетесь сравнить, и проверьте БД вручную, чтобы увидеть, почему они не совпадают.
И убедитесь, что в вашем коде нет никаких конкатенаций строк!