[英]How to use operators between table grid column and datetime in C#?
我的表格上有一个带有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'和'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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.