【问题标题】:Filter Date Range in Datagridview didn't work if months are different如果月份不同,Datagridview 中的过滤日期范围不起作用
【发布时间】:2017-06-12 03:00:02
【问题描述】:

我知道这是一个老问题,但我还是有点困惑,请教我怎么做。

我在 datagridview 中加载了一个带有条件的数据表,如下面的代码,事情是,当 FromDateToDate 是同一个月时,它运行良好。不同的月份使 datagridview 为空。

FromDateToDate 在日历中被选中到 2 文本框中。

private void LoadWorkRequestSearch()
{
    DateTime datefrom = Convert.ToDateTime(textdatefrom.Text.Trim());
    DateTime dateto = Convert.ToDateTime(textdateto.Text.Trim());

    string sql = "";
    sql = "Select DateCreated, ri.RequestID, RequesterID, RequestStatus, RequestDetail, SentTo, EstimateCompleteDate, ru.StartedDate, ru.ProcessTime From [RequestInfo] ri ";
    sql = sql + " LEFT JOIN [StatusRequest] sr ON sr.RequestStatusID = ri.Status";
    sql = sql + " LEFT JOIN [RequestUsers] ru ON ru.RequestID = ri.RequestID ";
    sql = sql + " Where DateCreated between '" + datefrom.ToShortDateString() + "' and '" + dateto.ToShortDateString() + "'";

    _dtworkrequestsearch = _cls_DB.QueryDataTable(sql);
    G1.DataSource = _dtworkrequestsearch;

}

我尝试了我搜索的所有内容,但没有按照我想要的方式工作,请帮助。

谢谢,

【问题讨论】:

  • textdatafrom.Texttestdateto.Text 的值是多少?您的代码示例没有给我们任何重现问题的方法。在这种情况下,请使用硬编码字符串,以便我们查看值是什么。您输入的日期格式是否可能与预期的不同?即dd/mm/yyyy 而不是mm/dd/yyyy?
  • DateCreated 表列是日期数据类型吗?
  • @RufusL 是的,textdate 的格式是 dd/MM/yyyy 完全适合我的本地数据库
  • @JeremyThompson DateCreate 是一个日期列,在 sql 中数据类型是 varchar(10)

标签: c# winforms date datagridview


【解决方案1】:

使用日历控件并强制使用日期格式。

从 TextBox 到日期的转换是可能的问题,例如 dd/MM 到 MM/dd

编辑:

您正在使用 varchar(10) 字段作为日期。这不允许 SQL BETWEENS,因为它是一个不基于数字/日期的文本字段,因此它执行字母数字搜索。

为 DateCreated 使用 SmallDateTime 列以获得所需的结果。

【讨论】:

  • 不不,日历控件已经用于两个文本框,这不是问题。 :(
  • smalldatetime 包括时间吗?还是只是约会?并且据我研究,smalldatetime 的格式是yyyy/MM/dd
  • 它同时支持日期和时间。为什么它被称为小日期时间是因为它只能追溯到 1900-01-01 到 2079-06-06。标准日期时间可以追溯到 1753 年,当时他们与公历合并。请参阅 Wikipedia,它会持续到 9999 年 12 月 31 日。
  • aw 只是因为我的日期只是日期而不是时间,可以使用smalldatetime 吗?
  • 是的,这是最佳做法。所有时间组件将是 12:00
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 2012-08-10
  • 2017-02-24
  • 2019-10-20
相关资源
最近更新 更多