我的DataSet中有一个列'date'。我想按当前日期过滤此列。 我想显示今天(当前日期)的所有订单。
我尝试了这个,但它不起作用:
DataSet ds = new DataSet();
ds.ReadXml("C:\\sites.xml");
dataGridView1.DataSource = ds.Tables[0];
this.dataGridView1.Columns[1].Visible = false;
//filter
ds.Tables[0].DefaultView.RowFilter = "date = '" + DateTime.Now.ToString() + "'";
XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<site technical="1">
<name>brian</name>
<url>www.microsoft.com</url>
<date>01/02/2012</date>
</site>
<site technical="2">
<name>Mike</name>
<url>www.news.com</url>
<date>01/02/2012</date>
</site>
<site technical="3">
<name>leslie</name>
<url>www.cnet.com</url>
<date>02/01/2012</date>
</site>
<site technical="4">
<name>rebeca</name>
<url>www.gamespot.com</url>
<date>01/01/2012</date>
</site>
<site technical="5">
<name>jenifer</name>
<url>www.google.com</url>
<date>02/01/2012</date>
</site>
</sites>
答案 0 :(得分:2)
您必须使用数字符号 #
而不是撇号 '
。
试试这个:
ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString() + "#";
来源:http://www.csharp-examples.net/dataview-rowfilter/
<强>更新强>
根据您的XML记录中的日期,格式日期为“ MM / dd / yyyy ”
ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString("MM/dd/yyyy") + "#";
答案 1 :(得分:0)
ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString() + "#";