DataTable.ReadXml Methode

Definition

Liest XML-Schema und -Daten in das DataTable.

Überlädt

Name Beschreibung
ReadXml(Stream)

Liest XML-Schema und -Daten in die verwendung der DataTable angegebenen Stream.

ReadXml(TextReader)

Liest XML-Schema und -Daten in die verwendung der DataTable angegebenen TextReader.

ReadXml(String)

Liest XML-Schema und -Daten in die DataTable aus der angegebenen Datei.

ReadXml(XmlReader)

Liest XML-Schema und -Daten in die verwendung der DataTable angegebenen XmlReader.

Hinweise

Die ReadXml Methode bietet eine Möglichkeit, nur Daten oder sowohl Daten als auch Schema in ein DataTable XML-Dokument zu lesen, während die ReadXmlSchema Methode nur das Schema liest. Verwenden Sie zum Lesen von Daten und Schemas eine der ReadXML Überladungen, die den XmlReadMode Parameter enthalten, und legen Sie den Wert auf ReadSchema.

Beachten Sie, dass das gleiche für die WriteXml bzw WriteXmlSchema . methoden gilt. Verwenden Sie die WriteXml Methode, um XML-Daten oder sowohl Schema- als auch Daten aus der DataTableXml-Datei zu schreiben. Verwenden Sie die WriteXmlSchema Methode, um nur das Schema zu schreiben.

Note

Es InvalidOperationException wird ein Fehler ausgelöst, wenn ein Spaltentyp im DataRow Lese- oder Schreibvorgang für Implementierungen IDynamicMetaObjectProvider und nicht implementiert IXmlSerializablewird.

ReadXml(Stream)

Liest XML-Schema und -Daten in die verwendung der DataTable angegebenen Stream.

public:
 System::Data::XmlReadMode ReadXml(System::IO::Stream ^ stream);
public System.Data.XmlReadMode ReadXml(System.IO.Stream stream);
member this.ReadXml : System.IO.Stream -> System.Data.XmlReadMode
Public Function ReadXml (stream As Stream) As XmlReadMode

Parameter

stream
Stream

Ein Objekt, das von Stream.

Gibt zurück

Wird XmlReadMode zum Lesen der Daten verwendet.

Beispiele

Im folgenden Beispiel wird ein Enthalten von DataTable zwei Spalten und zehn Zeilen erstellt. Im Beispiel werden das Schema und die DataTable Daten in einen Speicherdatenstrom geschrieben, indem die WriteXml Methode abgerufen wird. Das Beispiel erstellt eine zweite DataTable und ruft die ReadXml Methode auf, um sie mit Schema und Daten auszufüllen.

private static void DemonstrateReadWriteXMLDocumentWithStream()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    DataTable newTable = new DataTable();
    newTable.ReadXml(xmlStream);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    // Display the contents of the supplied DataTable:
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithStream()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXml(xmlStream, XmlWriteMode.WriteSchema)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim newTable As New DataTable
  newTable.ReadXml(xmlStream)

  ' Print out values in the table.
  PrintValues(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) As DataTable
  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintValues(ByVal table As DataTable, ByVal label As String)
  ' Display the contents of the supplied DataTable:
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

Hinweise

Die aktuellen DataTable und die absteigende Daten werden mit den Daten aus dem bereitgestellten Streamgeladen. Das Verhalten dieser Methode ist identisch mit dem DataSet.ReadXml der Methode, mit der Ausnahme, dass in diesem Fall Daten nur für die aktuelle Tabelle und die untergeordneten Elemente geladen werden.

Die ReadXml Methode bietet eine Möglichkeit, nur Daten oder sowohl Daten als auch Schema in ein DataTable XML-Dokument zu lesen, während die ReadXmlSchema Methode nur das Schema liest.

Beachten Sie, dass das gleiche für die WriteXml bzw WriteXmlSchema . methoden gilt. Verwenden Sie die WriteXml Methode, um XML-Daten oder sowohl Schema- als auch Daten aus der DataTableXml-Datei zu schreiben. Verwenden Sie die WriteXmlSchema Methode, um nur das Schema zu schreiben.

Note

Es InvalidOperationException wird ein Fehler ausgelöst, wenn ein Spaltentyp im DataRow Lese- oder Schreibvorgang für Implementierungen IDynamicMetaObjectProvider und nicht implementiert IXmlSerializablewird.

Wenn ein Inlineschema angegeben wird, wird das Zeilenschema verwendet, um die vorhandene relationale Struktur vor dem Laden der Daten zu erweitern. Wenn Konflikte auftreten (z. B. die gleiche Spalte in derselben Tabelle, die mit unterschiedlichen Datentypen definiert ist), wird eine Ausnahme ausgelöst.

Wenn kein zeileninternes Schema angegeben wird, wird die relationale Struktur nach Bedarf entsprechend der Struktur des XML-Dokuments durch Schlussfolgerungen erweitert. Wenn das Schema nicht über Schlussfolgerungen erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Note

Das DataSet XML-Element wird nicht dem entsprechenden DataColumn XML-Element zugeordnet oder DataTable wenn rechtliche XML-Zeichen wie ("_") im serialisierten XML-Code escapen. Der DataSet selbst selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur denselben verbrauchen. Wenn rechtliche Zeichen im XML-Elementnamen escaped sind, wird das Element während der Verarbeitung ignoriert.

Weitere Informationen

Gilt für:

ReadXml(TextReader)

Liest XML-Schema und -Daten in die verwendung der DataTable angegebenen TextReader.

public:
 System::Data::XmlReadMode ReadXml(System::IO::TextReader ^ reader);
public System.Data.XmlReadMode ReadXml(System.IO.TextReader reader);
member this.ReadXml : System.IO.TextReader -> System.Data.XmlReadMode
Public Function ReadXml (reader As TextReader) As XmlReadMode

Parameter

reader
TextReader

Das TextReader wird zum Lesen der Daten verwendet.

Gibt zurück

Wird XmlReadMode zum Lesen der Daten verwendet.

Beispiele

Im folgenden Beispiel wird ein Enthalten von DataTable zwei Spalten und zehn Zeilen erstellt. Im Beispiel werden das Schema und die DataTable Daten in einen Speicherdatenstrom geschrieben, indem die WriteXml Methode abgerufen wird. Das Beispiel erstellt eine zweite DataTable und ruft die ReadXml Methode auf, um sie mit Schema und Daten auszufüllen.

private static void DemonstrateReadWriteXMLDocumentWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    System.IO.StreamReader reader =
        new System.IO.StreamReader(xmlStream);
    DataTable newTable = new DataTable();
    newTable.ReadXml(reader);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithReader()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXml(xmlStream, XmlWriteMode.WriteSchema)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim reader As New System.IO.StreamReader(xmlStream)
  Dim newTable As New DataTable
  newTable.ReadXml(reader)

  ' Print out values in the table.
  PrintValues(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
  As DataTable
  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintValues(ByVal table As DataTable, _
  ByVal label As String)
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

Hinweise

Die aktuellen DataTable und die absteigende Daten werden mit den Daten aus dem bereitgestellten TextReadergeladen. Das Verhalten dieser Methode ist identisch mit dem DataSet.ReadXml der Methode, mit der Ausnahme, dass in diesem Fall Daten nur für die aktuelle Tabelle und die untergeordneten Elemente geladen werden.

Die ReadXml Methode bietet eine Möglichkeit, nur Daten oder sowohl Daten als auch Schema in ein DataTable XML-Dokument zu lesen, während die ReadXmlSchema Methode nur das Schema liest.

Beachten Sie, dass das gleiche für die WriteXml bzw WriteXmlSchema . methoden gilt. Verwenden Sie die WriteXml Methode, um XML-Daten oder sowohl Schema- als auch Daten aus der DataTableXml-Datei zu schreiben. Verwenden Sie die WriteXmlSchema Methode, um nur das Schema zu schreiben.

Note

Es InvalidOperationException wird ein Fehler ausgelöst, wenn ein Spaltentyp im DataRow Lese- oder Schreibvorgang für Implementierungen IDynamicMetaObjectProvider und nicht implementiert IXmlSerializablewird.

Wenn ein Inlineschema angegeben wird, wird das Zeilenschema verwendet, um die vorhandene relationale Struktur vor dem Laden der Daten zu erweitern. Wenn Konflikte auftreten (z. B. die gleiche Spalte in derselben Tabelle, die mit unterschiedlichen Datentypen definiert ist), wird eine Ausnahme ausgelöst.

Wenn kein zeileninternes Schema angegeben wird, wird die relationale Struktur nach Bedarf entsprechend der Struktur des XML-Dokuments durch Schlussfolgerungen erweitert. Wenn das Schema nicht über Schlussfolgerungen erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Note

Das DataSet XML-Element wird nicht dem entsprechenden DataColumn XML-Element zugeordnet oder DataTable wenn rechtliche XML-Zeichen wie ("_") im serialisierten XML-Code escapen. Der DataSet selbst selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur denselben verbrauchen. Wenn rechtliche Zeichen im XML-Elementnamen escaped sind, wird das Element während der Verarbeitung ignoriert.

Weitere Informationen

Gilt für:

ReadXml(String)

Liest XML-Schema und -Daten in die DataTable aus der angegebenen Datei.

public:
 System::Data::XmlReadMode ReadXml(System::String ^ fileName);
public System.Data.XmlReadMode ReadXml(string fileName);
member this.ReadXml : string -> System.Data.XmlReadMode
Public Function ReadXml (fileName As String) As XmlReadMode

Parameter

fileName
String

Der Name der Datei, aus der die Daten gelesen werden sollen.

Gibt zurück

Wird XmlReadMode zum Lesen der Daten verwendet.

Beispiele

Im folgenden Beispiel wird ein Enthalten von DataTable zwei Spalten und zehn Zeilen erstellt. Im Beispiel wird das Schema und die DataTable Daten auf den Datenträger geschrieben. Das Beispiel erstellt eine zweite DataTable und ruft die ReadXml Methode auf, um sie mit Schema und Daten auszufüllen.

private static void DemonstrateReadWriteXMLDocumentWithString()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    string fileName = "C:\\TestData.xml";
    table.WriteXml(fileName, XmlWriteMode.WriteSchema);

    DataTable newTable = new DataTable();
    newTable.ReadXml(fileName);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithString()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a file.
  Dim fileName As String = "C:\TestData.xml"
  table.WriteXml(fileName, XmlWriteMode.WriteSchema)

  Dim newTable As New DataTable
  newTable.ReadXml(fileName)

  ' Print out values in the table.
  PrintValues(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
  As DataTable

  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintValues(ByVal table As DataTable, _
  ByVal label As String)
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

Hinweise

Die aktuellen DataTable und die untergeordneten Dateien werden mit den Daten aus der datei geladen, die in der angegebenen StringDatei angegeben ist. Das Verhalten dieser Methode ist identisch mit dem DataSet.ReadXml der Methode, mit der Ausnahme, dass in diesem Fall Daten nur für die aktuelle Tabelle und die untergeordneten Elemente geladen werden.

Die ReadXml Methode bietet eine Möglichkeit, nur Daten oder sowohl Daten als auch Schema in ein DataTable XML-Dokument zu lesen, während die ReadXmlSchema Methode nur das Schema liest.

Beachten Sie, dass das gleiche für die WriteXml bzw WriteXmlSchema . methoden gilt. Verwenden Sie die WriteXml Methode, um XML-Daten oder sowohl Schema- als auch Daten aus der DataTableXml-Datei zu schreiben. Verwenden Sie die WriteXmlSchema Methode, um nur das Schema zu schreiben.

Note

Es InvalidOperationException wird ein Fehler ausgelöst, wenn ein Spaltentyp im DataRow Lese- oder Schreibvorgang für Implementierungen IDynamicMetaObjectProvider und nicht implementiert IXmlSerializablewird.

Wenn ein Inlineschema angegeben wird, wird das Zeilenschema verwendet, um die vorhandene relationale Struktur vor dem Laden der Daten zu erweitern. Wenn Konflikte auftreten (z. B. die gleiche Spalte in derselben Tabelle, die mit unterschiedlichen Datentypen definiert ist), wird eine Ausnahme ausgelöst.

Wenn kein zeileninternes Schema angegeben wird, wird die relationale Struktur nach Bedarf entsprechend der Struktur des XML-Dokuments durch Schlussfolgerungen erweitert. Wenn das Schema nicht über Schlussfolgerungen erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Note

Das DataSet XML-Element wird nicht dem entsprechenden DataColumn XML-Element zugeordnet oder DataTable wenn rechtliche XML-Zeichen wie ("_") im serialisierten XML-Code escapen. Der DataSet selbst selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur denselben verbrauchen. Wenn rechtliche Zeichen im XML-Elementnamen escaped sind, wird das Element während der Verarbeitung ignoriert.

using System.Data;
public class A {
   static void Main(string[] args) {
      DataTable tabl = new DataTable("mytable");
      tabl.Columns.Add(new DataColumn("id", typeof(int)));
      for (int i = 0; i < 10; i++) {
         DataRow row = tabl.NewRow();
         row["id"] = i;
         tabl.Rows.Add(row);
      }
      tabl.WriteXml("f.xml", XmlWriteMode.WriteSchema);
      DataTable newt = new DataTable();
      newt.ReadXml("f.xml");
   }
}

Weitere Informationen

Gilt für:

ReadXml(XmlReader)

Liest XML-Schema und -Daten in die verwendung der DataTable angegebenen XmlReader.

public:
 System::Data::XmlReadMode ReadXml(System::Xml::XmlReader ^ reader);
public System.Data.XmlReadMode ReadXml(System.Xml.XmlReader reader);
member this.ReadXml : System.Xml.XmlReader -> System.Data.XmlReadMode
Public Function ReadXml (reader As XmlReader) As XmlReadMode

Parameter

reader
XmlReader

Das XmlReader wird zum Lesen der Daten verwendet.

Gibt zurück

Wird XmlReadMode zum Lesen der Daten verwendet.

Beispiele

Im folgenden Beispiel wird ein Enthalten von DataTable zwei Spalten und zehn Zeilen erstellt. Im Beispiel werden das Schema und die DataTable Daten in ein XmlReader. Das Beispiel erstellt eine zweite DataTable und ruft die ReadXml Methode auf, um sie mit Schema und Daten aus der XmlReader Instanz auszufüllen.

private static void DemonstrateReadWriteXMLDocumentWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    System.Xml.XmlTextReader reader =
        new System.Xml.XmlTextReader(xmlStream);
    DataTable newTable = new DataTable();
    newTable.ReadXml(reader);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithReader()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXml(xmlStream, XmlWriteMode.WriteSchema)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim reader As New System.Xml.XmlTextReader(xmlStream)
  Dim newTable As New DataTable
  newTable.ReadXml(reader)

  ' Print out values in the table.
  PrintValues(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
  As DataTable
  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintValues(ByVal table As DataTable, _
  ByVal label As String)
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

Hinweise

Die aktuellen DataTable und die untergeordneten Dateien werden mit den Daten aus der datei geladen, die in der angegebenen XmlReaderDatei angegeben ist. Das Verhalten dieser Methode ist identisch mit dem ReadXml der Methode, mit der Ausnahme, dass in diesem Fall Daten nur für die aktuelle Tabelle und die untergeordneten Elemente geladen werden.

Die ReadXml Methode bietet eine Möglichkeit, nur Daten oder sowohl Daten als auch Schema in ein DataTable XML-Dokument zu lesen, während die ReadXmlSchema Methode nur das Schema liest.

Beachten Sie, dass das gleiche für die WriteXml bzw WriteXmlSchema . methoden gilt. Verwenden Sie die WriteXml Methode, um XML-Daten oder sowohl Schema- als auch Daten aus der DataTableXml-Datei zu schreiben. Verwenden Sie die WriteXmlSchema Methode, um nur das Schema zu schreiben.

Note

Es InvalidOperationException wird ein Fehler ausgelöst, wenn ein Spaltentyp im DataRow Lese- oder Schreibvorgang für Implementierungen IDynamicMetaObjectProvider und nicht implementiert IXmlSerializablewird.

Wenn ein Inlineschema angegeben wird, wird das Zeilenschema verwendet, um die vorhandene relationale Struktur vor dem Laden der Daten zu erweitern. Wenn Konflikte auftreten (z. B. die gleiche Spalte in derselben Tabelle, die mit unterschiedlichen Datentypen definiert ist), wird eine Ausnahme ausgelöst.

Wenn kein zeileninternes Schema angegeben wird, wird die relationale Struktur nach Bedarf entsprechend der Struktur des XML-Dokuments durch Schlussfolgerungen erweitert. Wenn das Schema nicht über Schlussfolgerungen erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Note

Das DataSet XML-Element wird nicht dem entsprechenden DataColumn XML-Element zugeordnet oder DataTable wenn rechtliche XML-Zeichen wie ("_") im serialisierten XML-Code escapen. Der DataSet selbst selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur denselben verbrauchen. Wenn rechtliche Zeichen im XML-Elementnamen escaped sind, wird das Element während der Verarbeitung ignoriert.

Weitere Informationen

Gilt für: