我刚刚为此找到了一些答案,但发现它们都经历了很多迭代,所以我提出了自己的解决方案:
将表格转换为字符串:
string myTableAsString =
String.Join(Environment.NewLine, myDataTable.Rows.Cast<DataRow>().
Select(r => r.ItemArray).ToArray().
Select(x => String.Join("\t", x.Cast<string>())));
然后只需将字符串保存到文本文件中,例如:
StreamWriter myFile = new StreamWriter("fileName.txt");
myFile.WriteLine(myFile);
myFile.Close();
有更短/更好的方式吗?
答案 0 :(得分:7)
您的DataTable
名为myDataTable,您可以将其添加到DataSet
:
var dataSet = new DataSet();
dataSet.AddTable(myDataTable);
// Write dataset to xml file or stream
dataSet.WriteXml("filename.xml");
您还可以从xml文件或流中读取:
dataSet.ReadXml("filename.xml");
答案 1 :(得分:2)
@Leonardo很抱歉,但我不能评论所以我发帖。
有时您可以询问数据集然后使用它。像这样:
foreach (DataRow row in ds.Tables[0].Rows)
{
foreach (object item in row.ItemArray)
{
myStreamWriter.Write((string)item + "\t");
}
myStreamWriter.WriteLine();
}
这是另一种方式,但我不知道哪个会给你一个更好的指标。
答案 2 :(得分:1)
如果您将XML视为文本,则可以执行以下操作:myDatatable.WriteXml("mydata.xml")
和myDatatable.ReadXml("mydata.xml")
答案 3 :(得分:0)
除非您将其与架构一起保存,否则会得到错误:
myDataTable.WriteXml("myXmlPath.xml", XmlWriteMode.WriteSchema);
myDatatable.ReadXml("myXmlPath.xml");
这里有更多有关使用模式保存/加载的信息: DataTable does not support schema inference from Xml.?