Фильтровать набор данных по текущей дате - PullRequest
1 голос
/ 02 января 2012

В моем наборе данных есть столбец "дата". Я хотел бы отфильтровать этот столбец по текущей дате. Я хочу отобразить все заказы только на сегодня (текущая дата).

Я пробовал это, но оно не работает:

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 ]

2 голосов
/ 02 января 2012

Вы должны использовать знак числа # вместо апострофа '.
Попробуйте это:

ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString() + "#";

источник: http://www.csharp -examples.net / dataview-rowfilter /

ОБНОВЛЕНИЕ:

на основе даты из вашей записи XML, формат даты с " MM / дд / гггг "

ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString("MM/dd/yyyy") + "#";
0 голосов
/ 02 января 2012
ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString() + "#";
...