DataTable.ReadXml Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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
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
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
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.