Ich habe eine XML-Datei:C# DataView Datumsbereich mit LIKE Operator?
<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>
ich eine XMLReader verwenden, um die Datei in einen Datensatz zu lesen und in einem Datagridview angezeigt werden soll. Ich möchte in der Lage sein, einen Datumsbereich anzugeben, für den die Daten angezeigt werden. Zum Beispiel, wo das Element ein Datum zwischen INSERT DATE & INSERT DATE enthält. Um dies zu tun, verwende ich ein DATAVIEW und befüllen dann die Datagridview mit der Datenansicht anstelle der Datenmenge.
Zur Zeit habe ich eine Methode wie folgt:
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;
}
Das Problem ist, dass, wenn Sie in der XML-Datei suchen, das Element die Zeit sowie das Datum enthält. Da ich mich nicht für den Zeitteil dieses Elements interessiere, würde ich die "LIKE" -Anweisung verwenden, um die Daten aus der XML-Datei basierend auf dem Datumsteil des Elements anzuzeigen. Als Ergebnis davon, wenn ich versuche, eine boolesche Operation auszuführen, um beispielsweise zu sagen - "Zeige mir die Daten für Daten zwischen 2009-07-27 und 2009-07-30", erhalte ich einen Fehler, da der Compiler dies nicht mag dass ich versuche, den LIKE-Operator mit den booleschen < =,> = Operatoren zu kombinieren (in der obigen Methode gezeigt). Gibt es einen Weg dahin? Ich muss in der Lage sein, Daten zwischen einer Reihe von Daten anzuzeigen, aber den Operator LIKE verwenden, um nur auf dem ersten Teil des Elements zu suchen.
Hilfe sehr geschätzt,
Mit freundlichen Grüßen.
Hoffen wir, dass das keine echten UK Handy Zahlen, die Sie dort gepostet haben. – RichardOD
Siehe http://www.ilearntoday.com/dataview-row-filter-for-date-time, um den gleichen Operator für die Datumsspalte in der Datenansicht zu verwenden. – Syed