2014-07-01 24 views
1

我有一个.NET控件,它从SQL数据库读取数据并将其显示在DataGridView中。我使用DateTimePicker来过滤两个日期之间的数据。如果我在同一个月内,这可以正常工作,例如28。6月 - 30。6月,但如果我设置1. July作为结束日期,那么我不会收到任何数据。日期作为日期时间存储在数据库中。你知道什么可能是错的吗?这是我改变DateTimePicker的代码。在日期间过滤数据 - 如何在几个月之间获取数据?

private void dtpEndDate_ValueChanged(object sender, EventArgs e) 
{ 
    //dtpStartDate and dtpEndDate are my DateTimePickers 
    DateTime start = dtpStartDate.Value; 
    DateTime end = dtpEndDate.Value; 
    dateFilter = string.Format("([{0}] >= '{1}' AND [{0}] <= '{2}')", "Date", start, end); 
    dataTable.DefaultView.RowFilter = dateFilter; 
} 
+0

你使用什么数据库? – Steve

+0

在数据库中存储的日期是否也包含具有重要值(不是00.00.00)的小时,分​​钟,秒部分? – Steve

+0

如果你有更多的信息,请编辑你的问题,而不是把东西放在评论。而且,你是否调试过实际生成的字符串? –

回答

0

感谢您的帮助球员。这解决了这个问题:

private void dtpEndDate_ValueChanged(object sender, EventArgs e) 
{ 
    //dtpStartDate and dtpEndDate are my DateTimePickers 
    string start = Convert.ToDateTime(dtpStartDate.Value).ToString("yyyy-MM-dd HH:mm:ss.ff"); 
    string end = Convert.ToDateTime(dtpEndDate.Value).ToString("yyyy-MM-dd HH:mm:ss.ff"); 
    dateFilter = string.Format("([{0}] >= #{1}# AND [{0}] <= #{2}#)", "Date", start, end); 
    dataTable.DefaultView.RowFilter = dateFilter; 
} 
相关问题