[英]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.