如何在C#中使用表网格列和日期时间之间的运算符
本文关键字:日期 时间 之间 运算符 网格 | 更新日期: 2023-09-27 18:26:21
我的表单上有一个列为ExpirationDate
的网格。在网格上方,我有两个复选框,active
和inactive
。
当我单击活动复选框时,我希望我的网格只显示到期日期大于或等于今天日期的行。
当我设置这样的条件时:
private string OR(string filter)
{
if (filter != "")
return "OR";
return "";
}
private void chbFilter_CheckedChanged(object sender, EventArgs e)
{
string filter = "";
if (chbAktivan.Checked)
filter += ExpirationDate >= DateTime.Today;
if (chbNeaktivan.Checked)
{
filter += OR(filter);
filter += ExpirationDate < DateTime.Today;
}
bsFilter.Filter = filter;
}
请只关注我的代码filter += ExpirationDate >= DateTime.Today
。
错误为:
错误196运算符">="不能应用于类型的操作数"System.Windows.Forms.DataGridViewTextBoxColumn"answers"System.DateTime"
知道吗?
试试这个:
private void chbFilter_CheckedChanged(object sender, EventArgs e)
{
string filter = "";
if (chbAktivan.Checked)
filter += "ExpirationDate >= '{0}'," + DateTime.Today;
if (chbNeaktivan.Checked)
{
filter += OR(filter);
filter += "ExpirationDate < '{0}'," + DateTime.Today;
}
bs.Filter = string.Format(filter);
}
当前您正在尝试用表达式的结果连接字符串filter
。()
但是bindingSource的筛选器表达式应该以文本格式提供
filter += String.Format(" ExpirationDate >= '{0}' ", DateTime.Today);
...
filter += String.Format(" ExpirationDate < '{0}' ", DateTime.Today);
如果我记得应该在' '
中写入正确的DateTime值
尝试使用这个:
filter += "ExpirationDate >= " + DateTime.Today;