Получение записей между датой X и датой Y из моей базы данных Access? - PullRequest
1 голос
/ 12 января 2010

У меня есть таблица с именем Recharge в базе данных Access.

Некоторые поля: RechargeDate, Account, Number и т. Д.

Я хотел получить все записи между двумя датами, поэтому написал следующий запрос:

string Query = "select * from Recharge where Account='" + comboBox1.Text + "' 
and RechargeDate between '"+dateTimePicker1.Value.Date.ToShortDateString()+"' and '"+dateTimePicker2.Value.Date.ToShortDateString()+"'"

Запрос выполняется нормально, но единственная проблема, с которой я столкнулся, заключается в том, что я могу получать даты только за один месяц.

Если я запрашиваю записи из диапазона, охватывающего более одного месяца, я не получаю правильный результат.

Любая помощь?

запрос выполняется хорошо, но проблема в том, что я могу получить информацию только между датами в одном месяце, если начальный и конечный месяц отличаются, я не могу получить правильный результат, plzz, помогите мне

Ответы [ 2 ]

3 голосов
/ 12 января 2010

Возможно, вы столкнулись с проблемой формата строки даты; попробуйте с этим кодом:

OleDbCommand command = new OleDbCommand(
    "SELECT * FROM Recharge " + 
    "WHERE Account=@Account and " + 
    "RechargeDate between @RechargeDateStart AND @RechargeDateEnd");
command.Parameters.AddWithValue("@Account", comboBox1.Text);
command.Parameters.AddWithValue("@RechargeDateStart",dateTimePicker1.Value.Date);
command.Parameters.AddWithValue("@RechargeDateEnd"  ,dateTimePicker2.Value.Date);

Кстати, вам не следует пытаться объединять команды SQL, поскольку это может привести к атакам с использованием SQL-инъекций.

0 голосов
/ 12 января 2010

Я использовал это с успехом, Recharge >= Date1 and Recharge <= Date2 Я не использовал between Возможно, это более эффективно, но я использую первое.

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