首页 > 解决方案 > 使用 XML 文件作为 DataGridView 的数据源并过滤日期 C# 时如何通过 RowFilter 过滤 DataView?

问题描述

我搜索了很多,但我能找到任何有帮助的东西。

我有一个 XML 文件,我想让它成为我的 DataGridView 的数据源。到现在为止一切都很好。我在 XML 文件中的元素与此类似:

  <id>1</id>
  <name>First last name</name>
  <date>02072019</date>
  <incAtt>Yes</incAtt>

Edit1:这是我的数据源:

//Globally defined these two
private DataSet dataSet;
private DataView dv;

//In Form1_Shown
dataSet = new DataSet();

using (var xmlFile = newStreamReader(@"C:\Users\sami_\Desktop\kyc_div_updates.xml", Encoding.GetEncoding("windows-1256")))
{

    dataSet.ReadXml(xmlFile);

    dv = dataSet.Tables[2].DefaultView;

    dv.Sort = "الفرع";

    dataGridView1.DataSource = dv;

    countL.Text = dataGridView1.Rows.Count + "Item(s)";

    SetColumns();
}

我想过滤 datagridviewRowFilter并且get all elements that their date是从0101201901012020

我尝试了很多方法,我把##放在我的值之间,但我总是得到String was not recognized as a valid DateTime. 我的部分代码是这样的:

"date=#" + dateEnterD.Value.ToString("ddMMyyyy") + "# and "

dateEnterD 是 DateTimePicker

Edit2:这是错误的跟踪:

at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.Data.ConstNode..ctor(DataTable table, ValueType type, Object constant, Boolean fParseQuotes)
at System.Data.ConstNode..ctor(DataTable table, ValueType type, Object constant)
at System.Data.ExpressionParser.Parse()
at System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
at System.Data.DataView.set_RowFilter(String value)
at KYCUpdates.Form1.Search_Search(String key) in D:\Visual Studio 
2015\Projects\KYCUpdates\KYCUpdates\Form1.cs:line 120

有没有办法在我的情况下搜索两个日期之间的元素?

谢谢

标签: xmlwinformsdatedatagridviewrowfilter

解决方案


推荐阅读