Как я могу выбрать несколько столбцов из таблицы, где дата - последний день?

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

connect.Open();
command.Connection = connect;
today = DateTime.Today.ToString("dd/MM/yyyy");
string query = "select attendance as [Attend], Emp_UserId as ID, 'Date_ofday' as [Today Date] , Emp_UserName as Name ,Delay_Hours as [Delay Hours] from Attendance where Date_ofday > '"+ DateTime.Parse(today) + "'  ";
command.CommandText = query;
OleDbDataAdapter da1 = new OleDbDataAdapter(command);
DataTable dt1 = new System.Data.DataTable();
da1.Fill(dt1);
dataGridView1.DataSource = dt1;

Это дает ошибку data type miss или missing operator при использовании базы данных Access.


person Nourah    schedule 02.05.2015    source источник
comment
Я разместил ответ, но не понял, какую базу данных вы используете. Это MySql (тег) или MS Access?   -  person Paolo Costa    schedule 02.05.2015


Ответы (1)


Вы конвертируете DateTime в строку, а затем анализируете ее обратно в DateTime в следующей строке, это не имеет смысла. Я думаю, вы должны использовать параметры, посмотрите, работает ли это, я не использую MySql:

connect.Open();
command.Connection = connect;
todday = DateTime.Today.ToString("dd/MM/yyyy");
string query = "select attendance as [Attend], Emp_UserId as ID, 'Date_ofday' as [Today Date] , Emp_UserName as Name ,Delay_Hours as [Delay Hours] from Attendance where Date_ofday > @Today";
command.CommandText = query;
OleDbDataAdapter da1 = new OleDbDataAdapter(command);
DataTable dt1 = new System.Data.DataTable();
da1.SelectCommand.Parameters.AddWithValue("@Today", DateTime.Today);
da1.Fill(dt1);
dataGridView1.DataSource = dt1;

В случае, если вы используете MS Access, запрос выглядит следующим образом:

string query = "select attendance as [Attend], Emp_UserId as ID, 'Date_ofday' as [Today Date] , Emp_UserName as Name ,Delay_Hours as [Delay Hours] from Attendance where Date_ofday > ?";
person Paolo Costa    schedule 02.05.2015
comment
Я использую базу данных Access, большое спасибо, все работает очень хорошо. - person Nourah; 02.05.2015