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

本文关键字:日期 时间 之间 运算符 网格 | 更新日期: 2023-09-27 18:26:21

我的表单上有一个列为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"answers"System.DateTime"

知道吗?

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

试试这个:

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;