DateTime 情報 (特定の日付より前または後) に基づいて DataGridView をフィルター処理できるようにしようとしていますが、フィルターを作成すると、すべての情報を読み取るため、文字列を DateTimes と比較できないと表示されます。 XMLファイルから文字列として入力する方法がわかりません。誰でも助けることができますか?
より詳細な説明:を使用して DataSet にプルする情報でいっぱいの 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 を自分で作成しているため、必要に応じて構文を変更できますが、方法がわかりません。
よろしくお願いします!- キース