как искать данные между указанными датами - PullRequest
0 голосов
/ 01 апреля 2010

У меня есть запрос

OleDbCommand com = _
    new OleDbCommand("select * from techs where actd0v between '" + _
                     TextBox1.Text + "' and '" + TextBox2.Text +  "'" , con);

где текстовые поля 1 и 2 - это указанные даты, в которые я хочу получить некоторую дату, связанную с этими датами. Но когда я пытаюсь найти данные между заданными датами, это дает мне некоторые даты, которые не включены между ними. Нужно ли указывать какой-либо шаблон, чтобы получить все даты, которые происходят между указанными датами.

Я использую базу данных ms access для моего проекта.

Ответы [ 3 ]

1 голос
/ 01 апреля 2010

Форматирование вашего запроса выглядит правильно. Но:

Остерегайтесь инъекций SQL здесь! Вам необходимо убедиться, что входные данные действительно являются датой, а не чем-то вроде:

'; drop table users; --

Одна вещь, которую вы могли бы сделать:

DateTime.Parse(TextBox1.Text)

и используйте один из методов .To *, чтобы Access нашел подходящий формат. Или создайте канонический формат ODBC из объекта DateTime, который обычно работает:

ODBC Канонический: гггг-мм-дд чч: мм: сс.ссс

Вот хороший обзор Sql Injection , который вы должны проверить. Он не специфичен для Access, но хорошо передает концепцию.

0 голосов
/ 21 апреля 2010

Предупреждения об SQL-инъекциях в стороне ... Я полагаю, вы доверяете своим пользователям.

Поставьте цифры (#) по обе стороны от даты

OleDbCommand com = _
    new OleDbCommand("select * from techs where actd0v between #" + _
                    TextBox1.Text + "# and #" + TextBox2.Text + "#" , con);

MS Access должен разобраться.

Может случиться так, что «между» было сделано в строковом представлении даты, а не в виде типа даты; который объяснил бы результаты за пределами.

0 голосов
/ 01 апреля 2010

Я предполагаю, что текст в текстовых полях не в распознанном формате для дат OleDB. Попробуйте использовать формат «гггг-ММ-дд». Пример: 2010-03-31. Можете ли вы запустить приложение в режиме отладки и опубликовать полный запрос?

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