【问题标题】:How to use operators between table grid column and datetime in C#?如何在 C# 中的表格网格列和日期时间之间使用运算符?
【发布时间】:2015-12-10 11:49:06
【问题描述】:

我的表单上有一个网格,列有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 &gt;= DateTime.Today

错误是:

错误 196 运算符“>=”不能应用于类型的操作数 'System.Windows.Forms.DataGridViewTextBoxColumn' 和 'System.DateTime'

有什么想法吗?

【问题讨论】:

  • 不确定为什么要将字符串filter 与表达式的结果相连接。我认为它应该像filter += String.Format(" ExpirationDate &gt;= '{0}' ", DateTime.Today);
  • 是的,您的代码正在运行! Tnx man...请像其他人一样输入代码,这样我就可以接受答案,因为我现在不能这样做...:)

标签: c# datetime


【解决方案1】:

试试这个:

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);
}

【讨论】:

  • 没有 '{0}' 将无法工作。只需要添加这个。请编辑您的代码,所以我可以说已经完成了。:) " ExpirationDate >= '{0}' ", DateTime.Today
  • 完成,您好,我还回答了您的“如何在 C# 中使用多个事件处理程序 text_changed? ' 问题请检查。
  • 是的,我现在检查了一下,它也是正确的! :) 不幸的是,我没有足够的声誉对答案进行投票,我只能检查一下。当有人先给出正确答案时,我检查了它。上面有人在你之前回答正确,但我必须感谢你的支持,伙计! :)
  • 没关系。我只想确认它是否正确。
【解决方案2】:

目前您正在尝试将字符串filter 与表达式的结果相连接。 ()

但是 bindingSource 的过滤器表达式应该以文本格式提供

filter += String.Format(" ExpirationDate >= '{0}' ", DateTime.Today);
...
filter += String.Format(" ExpirationDate < '{0}' ", DateTime.Today);

如果我记得正确的 DateTime 值应该写在 ' '

【讨论】:

    【解决方案3】:

    尝试使用这个:

    filter += "ExpirationDate >= " + DateTime.Today;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2013-07-17
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 2012-05-04
      相关资源
      最近更新 更多