c# - C#如何在datagridview中显示datetimepicker中选定的日期值
问题描述
更准确地说。这是我正在努力实现的目标。我的数据库有带有日期值的日期列,现在我有一个 datetimepicker,如果我选择一个日期,比如说 2018 年 8 月 21 日,所有日期为 8 月 21 日的行都应该只显示。我需要帮助来做这些,我真的不知道我该怎么做。谢谢
这是我尝试过的提供的代码,但它不起作用
PS:日期列在我的数据库中是 varchar 数据类型
public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
InitializeComponent();
}
public DataTable dbdataset;
private void FillSupplier(DataGridView grid, string request)
{
using (var con = SQLConnection.GetConnection())
using (var select = new SqlCommand(request, con))
using (var sda = new SqlDataAdapter())
{
dbdataset = new DataTable();
sda.SelectCommand = select;
sda.Fill(dbdataset);
grid.DataSource = new BindingSource() { DataSource = dbdataset };
sda.Update(dbdataset);
}
}
private void DateReturn_ValueChanged(object sender, EventArgs e)
{
var dv = new DataView(dbdataset);
dv.RowFilter = string.Format("Date LIKE '%{0}%'", DateReturn2.Value);
PurchaseReturn.DataSource = dv;
}
}
解决方案
我会说只有一个解决方案,我会解释为什么。
问题是您的日期在数据库中的格式为varchar
,解决方案是将其更改为date
或datetime
您必须更改它的原因是因为当您以格式将日期传递给数据库时,varchar
您可能会从一个函数中传递它,然后dd/MM/yyyy
从另一个函数传递它MM/dd/yyyy
,然后在数据库中,您将有 2 个不同格式的日期,这是无法过滤的通过。
我之所以说这是唯一的解决方案是因为即使您使用自定义函数解决了这个问题,您也会遇到两个问题:
- 下次使用该数据库中的一些数据时,您会遇到同样的问题
- 您会在代码中混淆,当您遇到如此多的自定义函数和扩展时,您会忘记您是如何命名/使用那个的,当您使用谷歌搜索时,如何解决无处不在的问题将是已经存在的解决方案
.Net
或其他东西否则,您将无法解决该问题。
推荐阅读
- powerbi - Power BI - 评估逻辑并突出显示小计(条件格式)
- javascript - 我得到了一个指数:10;从 vscode 的终端
- bash - 如何遵循哪个输出的符号链接?
- java - 在 Spark 的驱动程序上捕获 Dataset foreachPartition() 函数中引发的异常?
- c# - 如何等待元素附加到 DOM
- c# - 如何在 OpenXML SpeadsheetDocument 中设置或清除作者
- wordpress - 将 Bootstrap 4 网站迁移到 Wordpress
- javascript - React.js:父级或组件应该管理状态吗?
- php - 删除 var_dump 时 dateTime 出错
- jquery - 如何使用 jquery 从复杂的输入名称中获取值