我需要从数据集或数据创建一个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
可能更容易。