将数据集对象保存为 XML
本文关键字:XML 保存 对象 数据集 | 更新日期: 2023-09-27 18:34:09
嗨,我
有这段代码,其中正在从存储在数据集中的 Excel 工作表中读取并显示输出,现在我想保存我从 DS 获得的任何内容。.XML格式的 GetXm() 方法。(例如:输出.xml)
daAdapter = new OleDbDataAdapter("Select * FROM [Sheet1$]", connection);
System.Data.DataTable dt=new System.Data.DataTable("ChildElement");
//daAdapter.FillSchema(dt, SchemaType.Source);
daAdapter.Fill(dt);
DataSet ds = new DataSet("RootElement");
ds.Tables.Add(dt);
Console.WriteLine(ds.GetXml());
Console.Read();
超级简单的方法:
System.IO.File.WriteAllText(@"c:'temp'myfile.xml", ds.GetXml());
从 MSDN:
创建一个新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已存在,则会覆盖该文件。
http://msdn.microsoft.com/en-us/library/ms143375.aspx
所以你想把一个字符串保存到光盘 - 使用 StreamWriter 类:
using System.IO;
....
string xmlString = ds.GetXml();
string path = "Output.xml";
using(StreamWriter writer = new StreamWriter(path);
{
writer.Write(xmlString);
}
或者,如果您不需要字符串变量并希望提高效率,请考虑使用 Krazibit312 建议的 DataSet.WriteXml 方法。从文档中:
GetXml 以字符串形式返回 XML,因此需要更多的开销 比 WriteXml 将 XML 写入文件。
你需要用户 StreamWriter 对象
using System.IO;
....
// Get a StreamWriter object
StreamWriter xmlDoc = new StreamWriter(Server.MapPath("~/FileTest/Testdo.xml"), false);
// Apply the WriteXml method to write an XML document
ds.WriteXml(xmlDoc);
xmlDoc.Close();
//simply
ds.WriteXML("FileName");