如何在 DataView Rowfilter 中使用 DATEADD(SQL)? (C#)
How to use DATEADD(SQL) in DataView Rowfilter? (C#)
我正在编写程序以使用 DataGridView 和 ComboBox Selection 显示信息。
在SQL中,查询是
SELECT ListID, ListTitle, ListLastModifyDate WHERE ListLastModifyDate <= DATEADD(MM, -1, GETDATE())
我已经构建了代码。
在文本框中输入文本,然后单击开始按钮。
DataGridView中显示的匹配数据
现在我想添加这个..
- 如果我在组合框中选择项目,所选项目的结果显示在 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;
}
}
我不确定什么是对的...
请有人帮助我如何更改该查询...
谢谢
DataColumn 对象的 Expression 属性 中列出了应用 RowFilter 时要使用的规则。
特别是在过滤 DateTime 值时,您应该将日期值括在 # 符号内,并以不变文化格式表示日期
所以你应该写
dvSiteCol.RowFilter = string.Format("SiteColLastModifyDate <= #{0}#",
lastModifiedDate.ToString("MM/dd/yyyy"));
不清楚您想对这部分代码做什么。格式表达式中不需要它,因此您应该删除它:,mtcbSiteColSearchCondition.SelectedItem.ToString());
我正在编写程序以使用 DataGridView 和 ComboBox Selection 显示信息。
在SQL中,查询是
SELECT ListID, ListTitle, ListLastModifyDate WHERE ListLastModifyDate <= DATEADD(MM, -1, GETDATE())
我已经构建了代码。
在文本框中输入文本,然后单击开始按钮。
DataGridView中显示的匹配数据
现在我想添加这个..
- 如果我在组合框中选择项目,所选项目的结果显示在 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;
}
}
我不确定什么是对的...
请有人帮助我如何更改该查询...
谢谢
DataColumn 对象的 Expression 属性 中列出了应用 RowFilter 时要使用的规则。
特别是在过滤 DateTime 值时,您应该将日期值括在 # 符号内,并以不变文化格式表示日期
所以你应该写
dvSiteCol.RowFilter = string.Format("SiteColLastModifyDate <= #{0}#",
lastModifiedDate.ToString("MM/dd/yyyy"));
不清楚您想对这部分代码做什么。格式表达式中不需要它,因此您应该删除它:,mtcbSiteColSearchCondition.SelectedItem.ToString());