从 datetimepicker 获取 from 和 to date 之间的值

Posted

技术标签:

【中文标题】从 datetimepicker 获取 from 和 to date 之间的值【英文标题】:Getting values between from and to date from datetimepicker 【发布时间】:2017-05-17 03:35:29 【问题描述】:

我的程序中有 2 个日期时间选择器。一种是指定从,另一种是指定到。我试图在 from 和 to 之间获取值。我在查询之间传递了 2 datetimepicker 的值,但我只获得一个月日期之间的值。如果我从一个月的日期选择并从另一个日期选择将不会显示数据。

SqlDataAdapter da3 = new SqlDataAdapter("SELECT Name from Billing WHERE Bill_Date Between @From AND @To", con);
da3.SelectCommand.Parameters.AddWithValue("@From", dateTimePicker_FromSaleReport.Text);
da3.SelectCommand.Parameters.AddWithValue("@To", dateTimePicker_ToSaleReport.Text);
dataTable dt3 = new DataTable();
da.Fill(dt);
dgv_FromToSaleReport.DataSource = dt3;

【问题讨论】:

尝试将日期作为 DateTime 对象传递给Text 你能帮忙解释一下吗? 不幸的说,你可以这样做:dateTimePicker_FromSaleReport.Value.ToString()。看看DateTimePicker.Value Property。 【参考方案1】:

你必须传递 DateTime 对象而不是 Text,所以首先你必须从 DatePicker 获取 DateTime 值,然后继续:

DateTime fromDate, toDate;

DateTime.TryParse(dateTimePicker_FromSaleReport.Text, out fromDate);
DateTime.TryParse(dateTimePicker_ToSaleReport.Text, out toDate);

// use DateTime.TryparseExtract if you know the format of input date

SqlDataAdapter filterAdapter = new SqlDataAdapter("SELECT Name from Billing WHERE Bill_Date Between @From AND @To", con);
filterAdapter.SelectCommand.Parameters.Add("@From",SqlDbType.DateTime).value = fromDate;
filterAdapter.SelectCommand.Parameters.Add("@To", SqlDbType.DateTime).value = toDate;

DataTable filteredTable = new DataTable();
filterAdapter.Fill(filteredTable);
dgv_FromToSaleReport.DataSource = filteredTable ;

注意:请确定数据库中列的类型,它应该是 DateTime 以便进行比较。

【讨论】:

我仍然只能在一个月内获取日期之间的值。我在数据库中有那个 bill_Date 列,它从 datetipickers 文本中保存账单日期。 请交叉检查数据库中该列的类型 varchar.. 我想我应该将日期时间选择器中的日期保存为日期对象而不是日期时间选择器文本? 是的,你必须先解决这个问题,还需要将列类型更改为 DateTime 会这样做的。好的,谢谢。:)

以上是关于从 datetimepicker 获取 from 和 to date 之间的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c#.net 中使用 datetimepicker 获取月份更改后的月份数

如何设置datetimepicker的值

datetimepicker bootstrap 获取值并将其用作输入未定义的错误

c datetimepicker 读取到的时间一直是不变的 怎么获取动态的时间

如何在 Google Apps 脚本中为 DateTimePicker 获取正确的 DateTime?

C# Windows 窗体 DateTimePicker,如何获取 SelectedText、SelectionStart 和 SelectionLength?