C# 将数据表保存到文本文件的最短方法
我刚刚找到了一些答案,但发现它们都非常长,需要大量迭代,因此我提出了自己的解决方案:C# 将数据表保存到文本文件的最短方法,c#,datatable,streamwriter,C#,Datatable,Streamwriter,我刚刚找到了一些答案,但发现它们都非常长,需要大量迭代,因此我提出了自己的解决方案: 将表格转换为字符串: string myTableAsString = String.Join(Environment.NewLine, myDataTable.Rows.Cast<DataRow>(). Select(r => r.ItemArray).ToArray(). Select(x => String.Join("\t", x
string myTableAsString =
String.Join(Environment.NewLine, myDataTable.Rows.Cast<DataRow>().
Select(r => r.ItemArray).ToArray().
Select(x => String.Join("\t", x.Cast<string>())));
有没有更短/更好的方法 @Leonardo抱歉,我无法发表评论,所以我发布了 有时,您可以询问数据集,然后使用它。像这样:
foreach (DataRow row in ds.Tables[0].Rows)
{
foreach (object item in row.ItemArray)
{
myStreamWriter.Write((string)item + "\t");
}
myStreamWriter.WriteLine();
}
这是另一种方式,但我不知道哪一个会给你一个更好的度量。
如果你认为XML是文本,你可以这样做:<代码> MyDataTab.WriteXml(“MyData.xml”)和<代码> MyDataTab.ReadXml(“MyData.xml”) < p>你的<代码> DataTabor <代码>被命名为MyDataTable,你可以将它添加到<代码> DataSet < /Case>为:var dataSet = new DataSet();
dataSet.AddTable(myDataTable);
// Write dataset to xml file or stream
dataSet.WriteXml("filename.xml");
您还可以从xml文件或流中读取:
dataSet.ReadXml("filename.xml");
除非将其与架构一起保存,否则会出现错误:
myDataTable.WriteXml("myXmlPath.xml", XmlWriteMode.WriteSchema);
myDatatable.ReadXml("myXmlPath.xml");
此处有关于使用架构保存/加载的更多信息:
要短多少?一行保存到文件。还有一种预定义的DataTable方法,用于将数据表的内容保存到文件中。如果您有工作代码,则该代码不属于此网站。此站点用于修复损坏的代码。如果您可以使用xml,那么您可能有兴趣将
DataTable
添加到DataSet
并在其上调用WriteXml
。我只是想知道我是否不仅仅是在重新发明轮子。如果有一个非常简单和简短的方法,我只是找不到那里,如果有人能让我知道,我将不胜感激。重要的部分是将表转换为字符串,但是感谢您提供的在一行中写入文件的提示,我不知道。是的,这看起来也简单多了。为什么需要创建数据集?你不能按照别人的建议执行myDataTable.WriteXml(“filename.xml”)吗?出于某种原因,我考虑了多个表。如果只需要编写一个表,那么当然可以使用DataTable.WriteXml
。仅供参考:在.NET Framework 4.6.2中,System.Data.DataSet
上没有名为AddTable
的方法,我在DataSet.Tables
上使用了Add
方法。看到和
myDataTable.WriteXml("myXmlPath.xml", XmlWriteMode.WriteSchema);
myDatatable.ReadXml("myXmlPath.xml");