我希望在选择日期时从日期时间选择器按日期搜索所有数据 我无法通过此查询获得结果 例如8/4/2017我只想按日期结果日期和时间
MessageBox.Show("Date they start: " + monthCalendar1.SelectionEnd.ToString("dd/MM/yyyy"));
String date = monthCalendar1.SelectionEnd.ToString("dd/MM/yyyy");
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;//'%"+a+"%'
cmd.CommandText = "Select * from selectItems where [last_stock_date] Like'" + date+ "%'";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
答案 0 :(得分:1)
如果DateTime init = monthCalendar1.SelectionEnd;
DateTime finish = init.AddDays(1);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"Select * from selectItems
where [last_stock_date] >= @init
AND [last_stock_date] < @finish";
cmd.Parameters.Add("@init", SqlDbType.DateTime).Value = init;
cmd.Parameters.Add("@finish", SqlDbType.DateTime).Value = finish;
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
是DateTime列(并带有时间信息),那么您不能使用字符串对其进行搜索。这永远不会返回有意义的东西。
而是使用带有两个DateTime类型参数的参数化查询,一个用于下限(搜索日期的00:00),另一个用于搜索日期的上限(23:59:59.999)
src = "{{ route('searchajax') }}";
$("#search_text").autocomplete({
source: function(request, response) {
$.ajax({
url: src,
dataType: "json",
data: {
term : request.term
},
success: function(data) {
response(data);
}
});
},
min_length: 3,
});
我还建议您将此代码使用的一次性对象(主要是连接)放在using语句
中