c# - 如何过滤数据网格中的日期值

标签 c# datagrid

我无法在我的数据网格中过滤日期值。这是我的代码:

DataTable dbdataset;
DataView DV = new DataView(dbdataset);
DV.RowFilter = string.Format("Data LIKE '%{0}%'", textBox1.Text);
dataGridView1.DataSource = DV;

我总是得到这个错误:

Unable to Perform Operation 'Like' on System.DateTime and System.String

有人能帮帮我吗?

最佳答案

您不能对 DateTime 数据类型使用 LIKE 运算符。尝试使用等于运算符。

DV.RowFilter = string.Format("Data = '{0}'", textBox1.Text);

但是,请注意 textBox1.Text 中的内容。它必须可转换为 DateTime 数据类型。还要记住 DateTime 也有一个 Time 部分,而不仅仅是一个 Date 部分。

或者您可能想尝试过滤特定日期的所有行:

DateTime dt = Convert.ToDateTime(textBox1.Text);
DV.RowFilter = string.Format("Data > '{0}' AND Data < '{1}'", dt.AddDays(-1).ToString("yyyyMMdd"), dt.AddDays(1).ToString("yyyyMMdd"));

关于c# - 如何过滤数据网格中的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27492248/

相关文章:

c# - 在 DataGrid 中看不到文本框文本

wpf - 绑定(bind)到 DataGrid.DataTemplate

c# - 在数据网格中显示记录需要时间!

javascript - 在 MVC razor View 中使用浏览器的后退按钮后清除表单元素

c# - 对非重复随机数使用递归循环和整数数组

c# - 使用 ViewModel 更新 EF 实体的 MVC Controller Post 方法

WPF DataGridCheckBox列: how to hide the checkbox if the binding value is null?

c# - 如何使用DataGrid和MVVM添加行

c# - 从 SID 获取 user@domain 而不是 domain\user

c# - 如何在 C# 中显示标签中剩余的文本框字符?