我正在使用DataGridView和ComboBox Selection来显示信息。
在SQL中,查询是
SELECT ListID, ListTitle, ListLastModifyDate WHERE ListLastModifyDate <= DATEADD(MM, -1, GETDATE())
我已经构建了一个代码。
在文本框中写入文本,然后单击“开始”按钮。
DataGridView
现在我想加上这个......
所以我尝试使用DataView的RowFilter ..但发现了一些错误。
代码低于
private void mtcbSiteColSearchCondition_SelectedIndexChanged(object sender, EventArgs e)
{
DataView dvSiteCol = new DataView(dtSiteCol);
if (mtcbSiteColSearchCondition.SelectedItem.ToString() == "all")
{
mgrdSiteCollections.DataSource = dtSiteCol;
}
else
{
DateTime lastModifiedDate = DateTime.Now.AddMonths(-1);
dvSiteCol.RowFilter = string.Format("SiteColLastModifyDate <= {0}",lastModifiedDate.ToString("yyyy/MM/dd"), mtcbSiteColSearchCondition.SelectedItem.ToString());
mgrdSiteCollections.DataSource = dvSiteCol;
}
}
我不确定什么是对的...
请有人帮助我如何更改该查询...
由于
答案 0 :(得分:1)
应用RowFilter时使用的规则列在DataColumn对象的Expression属性中。
特别是在对DateTime值进行过滤时,您应将Date值括在#符号中,并以Invariant文化格式表示您的日期
所以你应该写
MerchantAccount
您不清楚您希望如何处理这部分代码。格式表达式中不需要它,因此您应该删除它: dvSiteCol.RowFilter = string.Format("SiteColLastModifyDate <= #{0}#",
lastModifiedDate.ToString("MM/dd/yyyy"));