我有2个数据访问器对象用于过滤Access查询。当我运行查询时,例如2012年9月1日(startdate)和2012年9月5日(enddate),它给了我一切从12am 9/1/2012到11:59 9/4/2012。通过增加enddate,有什么办法可以包含结束日期的实际日历日?Datepicker对象C的递增日期#
这里是我的代码:
string startDate = dateTimePicker1.Text;
string endDate = dateTimePicker2.Text;
OleDbCommand command = new OleDbCommand();
command.Parameters.AddWithValue("@startDate", startDate);
command.Parameters.AddWithValue("@endDate", endDate);
try {
command.Connection = connect;
command.CommandText = "SELECT RecordID, TimeStamp, EmployeeName, AreaDescription FROM LoginRecords r, Employees e, Areas a WHERE (e.EmployeeID = r.EmployeeID) AND (a.AreaID = r.AreaID) AND (TimeStamp BETWEEN @startDate AND @endDate) ORDER BY TimeStamp";
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
tw.WriteLine(reader["RecordID"].ToString() + " " + reader["TimeStamp"].ToString() + " " + reader["EmployeeName"].ToString() + " " + reader["AreaDescription"].ToString() + ",");
listBox1.Items.Add(reader["RecordID"].ToString() + " " + reader["TimeStamp"].ToString() + " " + reader["EmployeeName"].ToString() + " " + reader["AreaDescription"].ToString() + ",");
}
}
catch (Exception ex){
MessageBox.Show("Error: " + ex.Message);
}
至于原因,我无法捉摸......这结束了工作。 DateTime endDate = dateTimePicker2.Value; string startDate = dateTimePicker1.Text; – Psyllex
您不应该将DateTime值用作字符串。 sql server可能运行在与应用程序不同的文化中,并且可能无法识别格式化的字符串。同样使用'dateTimePicker.Value'。 –