C# 编写循环数据表或数据集的 XML



我需要从数据集或数据创建一个XML文件;对于数据集中的每个记录,我必须按照我的代码创建一个文件:

SqlDataAdapter da = new SqlDataAdapter("select top 5 * from dbo.Log", con);
DataSet ds = new DataSet();
da.Fill(ds, "Log");
DataTable dt = new DataTable("Log");
da.Fill(dt);                
foreach (DataRow row in dt.Rows)
{
row.Table.WriteXml("D:\" + row["id"] + ".xml");
// some other code...

创建 5 个 XML 文件,但在数据集/数据表中找到所有 5 条记录...我想要每个文件只有一条记录! 我该怎么做? 谢谢

使用 XmlTextWriter。下面只是一个示例。您可以根据需要对其进行修改。

XmlTextWriter writer = new XmlTextWriter("D:\" + row["id"] + ".xml", System.Text.Encoding.UTF8);
writer.WriteStartDocument(true);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.WriteStartElement("Table");
createNode("1", "Product 1", "1000", writer);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();

您正在使用row.Table.WriteXml(...).这将写入整个表,因此:所有行。据我所知,没有用于一次导出一行的内置 API;我想您可以将行克隆/添加/删除到一个相同但空的表中吗?

类似的东西(未经测试(:

var clone = dt.Clone(); // is empty
foreach(DataRow row in dt.Rows)
{
clone.Rows.Clear();
clone.ImportRow(row);
clone.WriteXml("D:\" + row["id"] + ".xml");
}

不过,使用XmlWriter可能更容易。

相关内容

  • 没有找到相关文章

最新更新