繁体   English   中英

如何在C#中的表格网格列和日期时间之间使用运算符?

[英]How to use operators between table grid column and datetime in C#?

我的表格上有一个带有ExpirationDate的网格。 在网格上方,我有两个复选框, activeinactive

当我单击活动复选框时,我希望网格仅向我显示到期日期大于或等于今天的行。

当我这样设置条件时:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM