【问题标题】:C# GridView, Combobox Date RangeC# GridView,组合框日期范围
【发布时间】:2015-05-31 08:47:03
【问题描述】:

我在 C# WinForms 中的日期范围查询有问题。如果我在两个组合框中选择 2015 年 3 月 26 日作为开始日期,2015 年 3 月 27 日作为结束日期,它只显示 2015 年 3 月 27 日的所有数据,而不显示 2015 年 3 月 26 日到 03 日的数据/27/2015。

代码如下:

                    DateTime date = DateTime.Now;
                    dateTimePicker.Value = date;
                    dateTimePicker.Format = DateTimePickerFormat.Custom;
                    dateTimePicker.CustomFormat = "MM/dd/yyyy";

                    DateTime date2 = DateTime.Now;
                    dateTimePicker2.Value = date2;
                    dateTimePicker2.Format = DateTimePickerFormat.Custom;
                    dateTimePicker2.CustomFormat = "MM/dd/yyyy";
    SQL

    patients.entry_datetime >= @startDate and patients.entry_datetime <= @endDate

    cmd.Parameters.AddWithValue("@startDate", dateTimePicker.Value);
    cmd.Parameters.AddWithValue("@endDate", dateTimePicker2.Value);

【问题讨论】:

  • 您正在为两个日期字段分配 DateTime.Now。
  • 我已经尝试过了,我得到了相同的结果code dateTimePicker.Format = DateTimePickerFormat.Custom; dateTimePicker.CustomFormat = "MM/dd/yyyy"; dateTimePicker2.Format = DateTimePickerFormat.Custom; dateTimePicker2.CustomFormat = "MM/dd/yyyy";code
  • 所以你需要将日期传递给 SQL 而不是时间?
  • 将日期转换为日期时间,并在 sql 中使用 datetime 参数。它将被自动处理。

标签: c# date gridview range


【解决方案1】:

即使使用CustomFormat 格式化的DateTimedateTimePicker.Value 传递的值将是DateTime 格式而不是Date 格式。所以你需要在 SQL 查询中转换 DateTime 来解决你的问题。 (假设您已将 patients.entry_datetime 作为 DateTime 存储在 SQL 服务器中。

所以试试这样的 SQL 查询,

patients.entry_datetime >= CAST(@startDate AS DATE) 
AND patients.entry_datetime <= CAST(@endDate AS DATE)

【讨论】:

  • @KevinRodriguez 上面的代码对我有用。请发布您所遇到的错误。
  • 我检查了我的数据库,日期时间列没有时间,这可能是问题吗?
  • 不,即使是日期类型也是 SQL 中的 CONVERT 支持的。你的关系型数据库是什么? SQL Server 还是 MySql?
  • 这是错误附加信息:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'VARCHAR, patients.entry_datetime, 101) >= CONVERT(VARCHAR, '2015-03-26 14:06:44' 附近使用正确的语法
  • 那就这样试试吧,patients.entry_datetime &gt;= CAST(@startDate AS DATE) AND patients.entry_datetime &lt;= CAST(@endDate AS DATE)
猜你喜欢
  • 1970-01-01
  • 2021-06-09
  • 2013-03-04
  • 1970-01-01
  • 2011-06-25
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
相关资源
最近更新 更多