DataTable.ReadXml Methode

Definition

Liest ein XML-Schema und XML-Daten in das DataTable.

Überlädt

ReadXml(Stream)

Liest mit dem angegebenen DataTable das XML-Schema und die XML-Daten in die Stream.

ReadXml(TextReader)

Liest mit dem angegebenen DataTable das XML-Schema und die XML-Daten in die TextReader.

ReadXml(String)

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

ReadXml(XmlReader)

Liest das XML-Schema und die XML-Daten mit dem angegebenen DataTable in die XmlReader.

Hinweise

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

Beachten Sie, dass der gleiche "true" für die WriteXml und WriteXmlSchema Methoden bzw. Schreiben von XML-Daten oder Schema und Daten aus der DataTable, verwenden Sie die WriteXml Methode. Verwenden Sie die -Methode, um nur das WriteXmlSchema Schema zu schreiben.

Hinweis

Ein InvalidOperationException wird ausgelöst, wenn ein Spaltentyp in der DataRow aus gelesen oder in geschrieben wird implementiert IDynamicMetaObjectProvider und nicht implementiert IXmlSerializable.

ReadXml(Stream)

Quelle:
DataTable.cs
Quelle:
DataTable.cs
Quelle:
DataTable.cs

Liest mit dem angegebenen DataTable das XML-Schema und die XML-Daten in die Stream.

public:
 System::Data::XmlReadMode ReadXml(System::IO::Stream ^ 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 von Stream abgeleitetes Objekt.

Gibt zurück

Der zum Lesen der Daten verwendete XmlReadMode.

Beispiele

Im folgenden Beispiel wird eine DataTable erstellt, die zwei Spalten und zehn Zeilen enthält. Im Beispiel werden das Schema und die DataTable Daten in einen Speicherdatenstrom geschrieben, indem die WriteXml -Methode aufgerufen wird. Im Beispiel wird eine zweite DataTable erstellt und die ReadXml -Methode aufgerufen, um sie mit Schema und Daten zu fü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

Der aktuelle DataTable und die zugehörigen Nachfolger werden mit den Daten aus dem angegebenen 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 deren Nachfolger geladen werden.

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

Beachten Sie, dass der gleiche "true" für die WriteXml und WriteXmlSchema Methoden bzw. Schreiben von XML-Daten oder Schema und Daten aus der DataTable, verwenden Sie die WriteXml Methode. Verwenden Sie die -Methode, um nur das WriteXmlSchema Schema zu schreiben.

Hinweis

Ein InvalidOperationException wird ausgelöst, wenn ein Spaltentyp in dem, aus DataRow dem gelesen oder geschrieben wird, implementiert IDynamicMetaObjectProvider und nicht implementiert IXmlSerializable.

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

Wenn kein Inlineschema angegeben wird, wird die relationale Struktur je nach Struktur des XML-Dokuments je nach Bedarf durch Rückschlüsse erweitert. Wenn das Schema nicht durch Rückschlüsse erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Hinweis

Das DataSet -Element ordnet kein XML-Element dem entsprechenden DataColumn oder DataTable zu, wenn in der serialisierten XML-Datei legale XML-Zeichen wie ("_") mit Escapezeichen versehen werden. Der DataSet selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur dasselbe verwenden. Wenn rechtliche Zeichen im XML-Elementnamen mit Escapezeichen versehen werden, wird das Element während der Verarbeitung ignoriert.

Weitere Informationen

Gilt für:

ReadXml(TextReader)

Quelle:
DataTable.cs
Quelle:
DataTable.cs
Quelle:
DataTable.cs

Liest mit dem angegebenen DataTable das XML-Schema und die XML-Daten in die TextReader.

public:
 System::Data::XmlReadMode ReadXml(System::IO::TextReader ^ reader);
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

Der TextReader, der verwendet wird, um die Daten zu lesen.

Gibt zurück

Der zum Lesen der Daten verwendete XmlReadMode.

Beispiele

Im folgenden Beispiel wird eine DataTable erstellt, die zwei Spalten und zehn Zeilen enthält. Im Beispiel werden das Schema und die DataTable Daten in einen Speicherdatenstrom geschrieben, indem die WriteXml -Methode aufgerufen wird. Im Beispiel wird eine zweite DataTable erstellt und die ReadXml -Methode aufgerufen, um sie mit Schema und Daten zu fü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

Der aktuelle DataTable und die zugehörigen Nachfolger werden mit den Daten aus dem angegebenen 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 deren Nachfolger geladen werden.

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

Beachten Sie, dass der gleiche "true" für die WriteXml und WriteXmlSchema Methoden bzw. Schreiben von XML-Daten oder Schema und Daten aus der DataTable, verwenden Sie die WriteXml Methode. Verwenden Sie die -Methode, um nur das WriteXmlSchema Schema zu schreiben.

Hinweis

Ein InvalidOperationException wird ausgelöst, wenn ein Spaltentyp in dem, aus DataRow dem gelesen oder geschrieben wird, implementiert IDynamicMetaObjectProvider und nicht implementiert IXmlSerializable.

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

Wenn kein Inlineschema angegeben wird, wird die relationale Struktur je nach Struktur des XML-Dokuments je nach Bedarf durch Rückschlüsse erweitert. Wenn das Schema nicht durch Rückschlüsse erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Hinweis

Das DataSet -Element ordnet kein XML-Element dem entsprechenden DataColumn oder DataTable zu, wenn in der serialisierten XML-Datei legale XML-Zeichen wie ("_") mit Escapezeichen versehen werden. Der DataSet selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur dasselbe verwenden. Wenn rechtliche Zeichen im XML-Elementnamen mit Escapezeichen versehen werden, wird das Element während der Verarbeitung ignoriert.

Weitere Informationen

Gilt für:

ReadXml(String)

Quelle:
DataTable.cs
Quelle:
DataTable.cs
Quelle:
DataTable.cs

Liest das XML-Schema und die XML-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

Der zum Lesen der Daten verwendete XmlReadMode.

Beispiele

Im folgenden Beispiel wird eine DataTable erstellt, die zwei Spalten und zehn Zeilen enthält. Im Beispiel werden das Schema und die DataTable Daten auf den Datenträger geschrieben. Im Beispiel wird eine zweite DataTable erstellt und die ReadXml -Methode aufgerufen, um sie mit Schema und Daten zu fü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 zugehörigen Nachfolger werden mit den Daten aus der Datei geladen, die im angegebenen Stringheißt. 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 deren Nachfolger geladen werden.

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

Beachten Sie, dass der gleiche "true" für die WriteXml und WriteXmlSchema Methoden bzw. Schreiben von XML-Daten oder Schema und Daten aus der DataTable, verwenden Sie die WriteXml Methode. Verwenden Sie die -Methode, um nur das WriteXmlSchema Schema zu schreiben.

Hinweis

Ein InvalidOperationException wird ausgelöst, wenn ein Spaltentyp in dem, aus DataRow dem gelesen oder geschrieben wird, implementiert IDynamicMetaObjectProvider und nicht implementiert IXmlSerializable.

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

Wenn kein Inlineschema angegeben wird, wird die relationale Struktur je nach Struktur des XML-Dokuments je nach Bedarf durch Rückschlüsse erweitert. Wenn das Schema nicht durch Rückschlüsse erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Hinweis

Das DataSet -Element ordnet kein XML-Element dem entsprechenden DataColumn oder DataTable zu, wenn in der serialisierten XML-Datei legale XML-Zeichen wie ("_") mit Escapezeichen versehen werden. Der DataSet selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur dasselbe verwenden. Wenn rechtliche Zeichen im XML-Elementnamen mit Escapezeichen versehen werden, 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)

Quelle:
DataTable.cs
Quelle:
DataTable.cs
Quelle:
DataTable.cs

Liest das XML-Schema und die XML-Daten mit dem angegebenen DataTable in die XmlReader.

public:
 System::Data::XmlReadMode ReadXml(System::Xml::XmlReader ^ reader);
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

Der XmlReader, der verwendet wird, um die Daten zu lesen.

Gibt zurück

Der zum Lesen der Daten verwendete XmlReadMode.

Beispiele

Im folgenden Beispiel wird eine DataTable erstellt, die zwei Spalten und zehn Zeilen enthält. Im Beispiel werden das Schema und die DataTable Daten in eine XmlReadergeschrieben. Im Beispiel wird eine zweite DataTable erstellt und die ReadXml -Methode aufgerufen, um sie mit Schema und Daten aus dem XmlReader instance zu fü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 zugehörigen Nachfolger werden mit den Daten aus der Datei geladen, die im angegebenen XmlReaderheißt. 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 deren Nachfolger geladen werden.

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

Beachten Sie, dass der gleiche "true" für die WriteXml und WriteXmlSchema Methoden bzw. Schreiben von XML-Daten oder Schema und Daten aus der DataTable, verwenden Sie die WriteXml Methode. Verwenden Sie die -Methode, um nur das WriteXmlSchema Schema zu schreiben.

Hinweis

Ein InvalidOperationException wird ausgelöst, wenn ein Spaltentyp in dem, aus DataRow dem gelesen oder geschrieben wird, implementiert IDynamicMetaObjectProvider und nicht implementiert IXmlSerializable.

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

Wenn kein Inlineschema angegeben wird, wird die relationale Struktur je nach Struktur des XML-Dokuments je nach Bedarf durch Rückschlüsse erweitert. Wenn das Schema nicht durch Rückschlüsse erweitert werden kann, um alle Daten verfügbar zu machen, wird eine Ausnahme ausgelöst.

Hinweis

Das DataSet -Element ordnet kein XML-Element dem entsprechenden DataColumn oder DataTable zu, wenn in der serialisierten XML-Datei legale XML-Zeichen wie ("_") mit Escapezeichen versehen werden. Der DataSet selbst escapet nur unzulässige XML-Zeichen in XML-Elementnamen und kann daher nur dasselbe verwenden. Wenn rechtliche Zeichen im XML-Elementnamen mit Escapezeichen versehen werden, wird das Element während der Verarbeitung ignoriert.

Weitere Informationen

Gilt für: