2009-07-28 7 views
1

ich eine XML-Datei haben:C# WinForms Lesen von XML-Datei - nur bestimmte Knoten

<Database> 
    <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> 
    </Database> 

Zur Zeit lese ich es in ein Datagridview dies mit:

public void Read() 
     { 
      DataSet ds = new DataSet("SMS DataSet"); 
      XmlDataDocument xmlDatadoc = new XmlDataDocument(); 
      xmlDatadoc.DataSet.ReadXml(@"C:\Documents and Settings\Administrator\Desktop\RecSmsDB.xml"); 
      ds = xmlDatadoc.DataSet; 
      this.dataGridView1.DataSource = ds; 
      this.dataGridView1.DataMember = "SMS"; 
      this.dataGridView1.Sort(dataGridView1.Columns["DateTime"], ListSortDirection.Descending); 
     } 

ich nur in der Lage sein zu lesen in den XML-Objekten, die eine bestimmte DateTime haben. Kennt jemand einen Weg, dies zu tun? Derzeit habe ich eine Vielzahl der im Namensraum enthaltenen Methoden ausprobiert, aber ohne Erfolg.

Hilfe sehr geschätzt,

betrifft.

*** EDIT: Ich möchte in der Lage sein, die zur Laufzeit angezeigten Daten dynamisch zu ändern.

Antwort

4

Nicht dass ich mir vorstellen kann. Sie können jedoch alle Daten in das DataSet einlesen und anschließend ein DataView erstellen, das die SMS-Tabelle filtert und Ihr Raster an dieses anstelle der DataTable bindet.

+0

+1 Einverstanden. Wenn die Daten nicht zu groß sind, filtern Sie sie einfach im DataSet. –

1

Was passiert, wenn Sie das DataSet an eine BindingSource anhängen und diese BindingSource an das Grid anhängen? Eine BindingSource verfügt über eine Filter-Eigenschaft, in die Sie SQL-ähnliche Ausdrücke eingeben können.

Verwandte Themen