簡體   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