2012-01-02 2 views
1

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

Я попытался это, но он не работает:

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> 
+1

«Это не работает» не предоставляет столько информации, сколько люди думают, что это так. Если это ошибка, сообщите об этом. Если это неожиданный результат, сообщите нам, что это было и что вы ожидали. –

+0

У меня не было сообщения об ошибке, и мои столбцы пусты в datagridview, когда я пытался фильтровать. Возможно, это файл XML. – user1112847

ответ

2

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

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

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

UPDATE:

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

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

Одиночная кавычка может использоваться в темпе #. – adatapost

+0

То же самое с # ... datagridview empty – user1112847

+0

код работает, если я поместил «date>» или «date <», но нет, если я поставлю дату =. Я думаю, что проблема - это ... почему? – user1112847

0
ds.Tables[0].DefaultView.RowFilter = "date = #" + DateTime.Now.ToString() + "#"; 
Смежные вопросы