Étant donné cette erreur; suffit de définir le nom du DataTable?
dt.TableName = "Fred";
...
Personnellement, j'utiliser-sérialisation d'objets (peut-être XmlSerializer
sur List<T>
), mais DataTable
devrait aller ...
mise à jour; pour un exemple utilisant DataTable.WriteXml
/ReadXml
; notez le commentaire "CETTE LIGNE FAIT TOUT ÇA MARCHE"; c'est nécessaire a: pouvoir écrire, et b: lire correctement les lignes.
using System;
using System.Data;
static class Program
{
static void Main()
{
DataTable table = CreateEmptyTable();
table.Rows.Add(1, "abc");
table.Rows.Add(2, "def");
WriteTable(table);
table.WriteXml("t.xml", XmlWriteMode.IgnoreSchema);
DataTable clone = CreateEmptyTable();
clone.ReadXml("t.xml");
WriteTable(clone);
}
static DataTable CreateEmptyTable()
{
DataTable table = new DataTable();
table.Columns.Add("Foo", typeof(int));
table.Columns.Add("Bar", typeof(string));
table.TableName = "MyTable"; // THIS LINE MAKES IT ALL WORK
return table;
}
static void WriteTable(DataTable table) {
foreach (DataColumn col in table.Columns)
{
Console.Write(col.ColumnName);
Console.Write('\t');
}
Console.WriteLine();
foreach (DataRow row in table.Rows)
{
foreach (DataColumn col in table.Columns)
{
Console.Write(row[col]);
Console.Write('\t');
}
Console.WriteLine();
}
}
}
Ajouté à jour re commentaire –