DataTable.ReadXml Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lit le schéma XML et les données dans le DataTable.
Surcharges
| Nom | Description |
|---|---|
| ReadXml(Stream) |
Lit le schéma XML et les données dans l’utilisation DataTable de l’élément spécifié Stream. |
| ReadXml(TextReader) |
Lit le schéma XML et les données dans l’utilisation DataTable de l’élément spécifié TextReader. |
| ReadXml(String) |
Lit le schéma XML et les données dans le DataTable fichier spécifié. |
| ReadXml(XmlReader) |
Lit le schéma XML et les données dans l’utilisation DataTable de l’élément spécifié XmlReader. |
Remarques
La ReadXml méthode permet de lire uniquement les données ou les données et le schéma dans un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire les données et le schéma, utilisez l’une ReadXML des surcharges qui incluent le XmlReadMode paramètre et définissez sa valeur ReadSchemasur .
Notez que la même chose est vraie pour les méthodes et WriteXmlSchema les WriteXml méthodes, respectivement. Pour écrire des données XML, ou des schémas et des données à partir du DataTable, utilisez la WriteXml méthode. Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode.
Note
Une InvalidOperationException exception est levée si un type de colonne dans l’objet DataRow lu ou écrit pour implémenter IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .
ReadXml(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
Paramètres
Retours
XmlReadMode Utilisé pour lire les données.
Exemples
L’exemple suivant crée une DataTable colonne contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données dans un flux de mémoire en appelant la WriteXml méthode. L’exemple crée une seconde DataTable et appelle la méthode pour la ReadXml remplir avec le schéma et les données.
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
Remarques
Le courant DataTable et ses descendants sont chargés avec les données de l’élément fourni Stream. Le comportement de cette méthode est identique à celui de la DataSet.ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table actuelle et ses descendants.
La ReadXml méthode permet de lire uniquement les données ou les données et le schéma dans un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.
Notez que la même chose est vraie pour les méthodes et WriteXmlSchema les WriteXml méthodes, respectivement. Pour écrire des données XML, ou des schémas et des données à partir du DataTable, utilisez la WriteXml méthode. Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode.
Note
Une InvalidOperationException exception est levée si un type de colonne dans l’objet DataRow lu ou écrit pour implémenter IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .
Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant de charger les données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données) une exception est levée.
Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, selon la structure du document XML. Si le schéma ne peut pas être étendu par inférence pour exposer toutes les données, une exception est levée.
Note
L’élément DataSet XML n’est pas associé à ses caractères XML correspondants DataColumn ou DataTable lorsque des caractères XML juridiques tels que (« _ ») sont placés dans le code XML sérialisé. Elle-même DataSet n’échappe qu’aux caractères XML non valides dans les noms d’éléments XML et ne peut donc consommer que la même chose. Lorsque les caractères juridiques du nom d’élément XML sont échappés, l’élément est ignoré lors du traitement.
Voir aussi
S’applique à
ReadXml(TextReader)
Lit le schéma XML et les données dans l’utilisation DataTable de l’élément spécifié 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
Paramètres
- reader
- TextReader
Utilisé TextReader pour lire les données.
Retours
XmlReadMode Utilisé pour lire les données.
Exemples
L’exemple suivant crée une DataTable colonne contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données dans un flux de mémoire en appelant la WriteXml méthode. L’exemple crée une seconde DataTable et appelle la méthode pour la ReadXml remplir avec le schéma et les données.
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
Remarques
Le courant DataTable et ses descendants sont chargés avec les données de l’élément fourni TextReader. Le comportement de cette méthode est identique à celui de la DataSet.ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table actuelle et ses descendants.
La ReadXml méthode permet de lire uniquement les données ou les données et le schéma dans un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.
Notez que la même chose est vraie pour les méthodes et WriteXmlSchema les WriteXml méthodes, respectivement. Pour écrire des données XML, ou des schémas et des données à partir du DataTable, utilisez la WriteXml méthode. Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode.
Note
Une InvalidOperationException exception est levée si un type de colonne dans l’objet DataRow lu ou écrit pour implémenter IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .
Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant de charger les données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données) une exception est levée.
Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, selon la structure du document XML. Si le schéma ne peut pas être étendu par inférence pour exposer toutes les données, une exception est levée.
Note
L’élément DataSet XML n’est pas associé à ses caractères XML correspondants DataColumn ou DataTable lorsque des caractères XML juridiques tels que (« _ ») sont placés dans le code XML sérialisé. Elle-même DataSet n’échappe qu’aux caractères XML non valides dans les noms d’éléments XML et ne peut donc consommer que la même chose. Lorsque les caractères juridiques du nom d’élément XML sont échappés, l’élément est ignoré lors du traitement.
Voir aussi
S’applique à
ReadXml(String)
Lit le schéma XML et les données dans le DataTable fichier spécifié.
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
Paramètres
- fileName
- String
Nom du fichier à partir duquel lire les données.
Retours
XmlReadMode Utilisé pour lire les données.
Exemples
L’exemple suivant crée une DataTable colonne contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données sur le disque. L’exemple crée une seconde DataTable et appelle la méthode pour la ReadXml remplir avec le schéma et les données.
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
Remarques
Les éléments actuels DataTable et descendants sont chargés avec les données du fichier nommé dans le fichier fourni String. Le comportement de cette méthode est identique à celui de la DataSet.ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table actuelle et ses descendants.
La ReadXml méthode permet de lire uniquement les données ou les données et le schéma dans un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.
Notez que la même chose est vraie pour les méthodes et WriteXmlSchema les WriteXml méthodes, respectivement. Pour écrire des données XML, ou des schémas et des données à partir du DataTable, utilisez la WriteXml méthode. Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode.
Note
Une InvalidOperationException exception est levée si un type de colonne dans l’objet DataRow lu ou écrit pour implémenter IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .
Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant de charger les données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données) une exception est levée.
Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, selon la structure du document XML. Si le schéma ne peut pas être étendu par inférence pour exposer toutes les données, une exception est levée.
Note
L’élément DataSet XML n’est pas associé à ses caractères XML correspondants DataColumn ou DataTable lorsque des caractères XML juridiques tels que (« _ ») sont placés dans le code XML sérialisé. Elle-même DataSet n’échappe qu’aux caractères XML non valides dans les noms d’éléments XML et ne peut donc consommer que la même chose. Lorsque les caractères juridiques du nom d’élément XML sont échappés, l’élément est ignoré lors du traitement.
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");
}
}
Voir aussi
S’applique à
ReadXml(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
Paramètres
Retours
XmlReadMode Utilisé pour lire les données.
Exemples
L’exemple suivant crée une DataTable colonne contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données dans un XmlReader. L’exemple crée une seconde DataTable et appelle la méthode pour la ReadXml remplir avec le schéma et les données de l’instance XmlReader .
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
Remarques
Les éléments actuels DataTable et descendants sont chargés avec les données du fichier nommé dans le fichier fourni XmlReader. Le comportement de cette méthode est identique à celui de la ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table actuelle et ses descendants.
La ReadXml méthode permet de lire uniquement les données ou les données et le schéma dans un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.
Notez que la même chose est vraie pour les méthodes et WriteXmlSchema les WriteXml méthodes, respectivement. Pour écrire des données XML, ou des schémas et des données à partir du DataTable, utilisez la WriteXml méthode. Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode.
Note
Une InvalidOperationException exception est levée si un type de colonne dans l’objet DataRow lu ou écrit pour implémenter IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .
Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant de charger les données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données) une exception est levée.
Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, selon la structure du document XML. Si le schéma ne peut pas être étendu par inférence pour exposer toutes les données, une exception est levée.
Note
L’élément DataSet XML n’est pas associé à ses caractères XML correspondants DataColumn ou DataTable lorsque des caractères XML juridiques tels que (« _ ») sont placés dans le code XML sérialisé. Elle-même DataSet n’échappe qu’aux caractères XML non valides dans les noms d’éléments XML et ne peut donc consommer que la même chose. Lorsque les caractères juridiques du nom d’élément XML sont échappés, l’élément est ignoré lors du traitement.