按当前日期过滤DataSet

时间:2012-01-02 06:16:16

标签: c# dataset filtering

我的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>

2 个答案:

答案 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() + "#";