我的dataGridView_flaggedComments
有10行。 Comments_Date
列的单元格中的值以31/12/2014 12:01 PM
的格式显示日期,如果我从comboBox_stockDates
选择日期(没有时间部分)(例如2014年12月31日),我希望它过滤(并显示)具有31/12/2014 xx:xx xx
的所有行。
即使所选日期(例如2014年12月31日)与包含31/12/2014 xx:xx xx
的行匹配,以下代码也会产生零结果。知道这里出了什么问题吗?
string dtFilter = string.Format("Comments_Date = #{0}#", comboBox_stockDates.SelectedItem.ToString());
(dataGridView_flaggedComments.DataSource as DataTable).DefaultView.RowFilter = dtFilter;
或者,有没有办法将两个日期转换为字符串然后比较?我试图使用LIKE运算符,但错误说不能用于比较DateTime和String。
非常感谢任何帮助和指导!谢谢。 :)
答案 0 :(得分:0)
我已经解决了这个问题,所以我提出了自己的答案。对于正在寻找类似问题的人来说,它可能会有所帮助。
string str = comboBox_stockDates.SelectedItem.ToString();
DateTime date = DateTime.ParseExact(str, "dd/MM/yyyy", CultureInfo.GetCultureInfo("en-GB"));
string dtFilter = string.Format(
"[Comments_Date] >= '{0} 12:00:00 AM' AND [Comments_Date] <= '{0} 11:59:59 PM'", date.ToString("dd/MM/yyyy"));
(dataGridView_flaggedComments.DataSource as DataTable).DefaultView.RowFilter = dtFilter;