我试图能够根据 DateTime 信息(早于或大于某个日期)过滤 DataGridView,但是当我创建过滤器时,它说它无法将字符串与 DateTimes 进行比较,因为它读取了所有信息从 XML 文件作为字符串,我不知道如何键入它们。任何人都可以帮忙吗?
更详细的解释:我有一个包含信息的 XML 文件,我使用myDataSet.ReadXML()
. 我在前面的步骤中自己创建了 XML。这是一个示例:
<site>
<subsite URL="http://website/home">
<pages />
<subsite URL="http://website/home/de-de">
<pages>
<page name="default_ex.xml" URL="http://www.my-website.com/home/de-de/default_ex.aspx" CreatedOn="8/23/2012 3:13:47 PM" CreatedBy="Joe Schmoe" LastModifiedOn="8/23/2012 3:17:44 PM" LastModifiedBy="Joe Schmoe" Version="1.0" PublishingStartDate="" PublishingExpirationDate="" ApprovalState="APPROVED" FileSize="1120" CheckedOutUser="" DaysSinceCreated="46" DaysSinceLastModified="46" IsPublicFacing="False"/>
</pages>
</subsite>
<subsite URL="http://website/home/en-us">
<pages>
<page name="default_ex.xml" URL="http://www.my-website.com/home/en-us/default_ex.aspx" CreatedOn="8/23/2012 10:40:53 AM" CreatedBy="Joe Schmoe" LastModifiedOn="8/23/2012 2:55:15 PM" LastModifiedBy="Joe Schmoe" Version="2.0" PublishingStartDate="" PublishingExpirationDate="" ApprovalState="APPROVED" FileSize="1122" CheckedOutUser="" DaysSinceCreated="46" DaysSinceLastModified="46" IsPublicFacing="False"/>
</pages>
</subsite>
<subsite URL="http://website/home/fr-fr">
<pages>
<page name="default_ex.xml" URL="http://www.my-website.com/home/fr-fr/default_ex.aspx" CreatedOn="8/2012 1:12:30 PM" CreatedBy="Boring Guy" LastModifiedOn="8/23/2012 11:59:41 AM" LastModifiedBy="Joe Schmoe" Version="1.1" PublishingStartDate="" PublishingExpirationDate="" ApprovalState="PENDING" FileSize="955" CheckedOutUser="" DaysSinceCreated="47" DaysSinceLastModified="46" IsPublicFacing="False"/>
</pages>
</subsite>
<subsite URL="http://website/home/ja-jp">
<pages>
<page name="default_ex.xml" URL="http://www.my-website.com/home/ja-jp/default_ex.aspx" CreatedOn="8/23/2012 3:50:29 PM" CreatedBy="Mary Poppins" LastModifiedOn="8/23/2012 3:58:28 PM" LastModifiedBy="Mary Poppins" Version="1.0" PublishingStartDate="" PublishingExpirationDate="" ApprovalState="APPROVED" FileSize="1199" CheckedOutUser="" DaysSinceCreated="46" DaysSinceLastModified="46" IsPublicFacing="False"/>
</pages>
</subsite>
</subsite>
...然后将其加载到 DataGridView 中,如下所示...:
myDataSet.ReadXml(@"MyData.xml");
myDataView = new DataView(myDataSet.Tables["Page"]);
myDataGridView.DataSource = myDataView;
...到目前为止效果很好。我什至可以很容易地过滤它,但是当我尝试基于不应该是字符串的属性(例如“LastModifiedOn”)进行一些过滤时,就像这样......:
myDataView.RowFilter = "PublishingExpirationDate > #" + DateTime.Now.Date.ToString() + "#";
...我收到一个错误,因为就 DataView(或 DataGridView,我不确定)而言,“PublishingExpirationDate”是字符串。我如何能够根据非字符串列进行过滤?
注意:我对 XML 有点陌生,我在前面的步骤中自己在这个项目中创建了 XML,所以如果需要,我可以修改语法以使其工作,我只是不知道如何。
请和谢谢!- 基思