我有一個XML文件:C#DataView使用LIKE運算符的日期範圍?
<SMS>
<Number>+447761692278</Number>
<DateTime>2009-07-27T15:20:32</DateTime>
<Message>Yes</Message>
<FollowedUpBy>Unassigned</FollowedUpBy>
<Outcome></Outcome>
<Quantity>0</Quantity>
<Points>0</Points>
</SMS>
<SMS>
<Number>+447706583066</Number>
<DateTime>2009-07-27T15:19:16</DateTime>
<Message>STOP</Message>
<FollowedUpBy>Unassigned</FollowedUpBy>
<Outcome></Outcome>
<Quantity>0</Quantity>
<Points>0</Points>
</SMS>
我用一個XMLReader將文件讀入的數據集,並在一個DataGridView顯示。 我希望能夠指定一個日期範圍來顯示數據。例如,元素包含INSERT DATE & INSERT DATE之間的日期。 爲了做到這一點,我正在使用DATAVIEW,然後使用dataview而不是數據集填充datagridview。
目前,我有如下的方法:
public void DisplayRecSmsByDateRange(string date1,string date2, string readDir)
{
DataSet ds = new DataSet("SMS DataSet");
XmlDataDocument xmlDatadoc = new XmlDataDocument();
xmlDatadoc.DataSet.ReadXml(readDir);
ds = xmlDatadoc.DataSet;
DataView custDV = new DataView(ds.Tables["SMS"]);
custDV.RowFilter = String.Format("(DateTime >= DateTime LIKE '{0}*' AND DateTime <= DateTime LIKE '{1}*')", EscapeLikeValue(date1), EscapeLikeValue(date2));
this.dataGridView1.DataSource = custDV;
}
的問題是,如果你看一下XML文件中,元素包含時間以及日期。由於我對這個元素的時間部分不感興趣,因此我會使用「LIKE」語句根據元素的日期部分顯示xml文件中的數據。因此,當我嘗試執行一個布爾操作來說 - 例如「顯示2009-07-27和2009-07-30之間的日期數據」時,我得到一個錯誤,因爲編譯器不喜歡我試圖將LIKE運算符與布爾型< =,> =運算符(在上述方法中顯示)結合使用。有沒有解決的辦法?我需要能夠在一系列日期之間顯示數據,但使用LIKE運算符僅基於元素的第一部分進行搜索。
幫助大大加分,
親切的問候。
讓我們希望這些都不是真正的英國手機你在那裏發佈的號碼。 – RichardOD 2009-07-28 13:58:49
請參閱http://www.ilearnttoday.com/dataview-row-filter-for-date-time使用數據視圖中的日期列中的運算符like – Syed 2015-02-27 11:13:48