【问题标题】:Converting datatable into xml with a unique id row将数据表转换为具有唯一 id 行的 xml
【发布时间】:2016-03-09 04:13:12
【问题描述】:

我正在将数据表转换为 xml。

DataSet dataSet1 = new DataSet("Products");
products.TableName = "Product";
dataSet1.Tables.Add(products);
dataSet1.WriteXml(directory + "//matrix.xml");

代码运行良好。我只想在每一行中添加一个唯一的 id 列。我怎样才能做到这一点?。帮助将不胜感激。提前致谢。

【问题讨论】:

  • 为什么数据表中没有这样的列?
  • 你的意思是在每个数据行中添加唯一的 id 吗?
  • 是的。这种方法将允许您以清晰直接的方式将 xml 数据与数据库链接,这总是有用的。
  • 你能告诉我如何添加到数据行吗?我想要每个数据行中的唯一 ID。我在谷歌上找不到。对不起,我是编程新手
  • 这取决于您使用的数据库引擎。请将您的表的CREATE 脚本与数据库引擎名称/版本一起发布。

标签: c# .net xml c#-4.0 datatable


【解决方案1】:

一种方法是,创建一个 new 列,在您的表上定义唯一性,然后导出到 Xml

var column = new DataColumn("UniqueRow", typeof(System.String));    
products.Columns.Add(column );
column.SetOrdinal(0); // first column 

foreach(DataRow row in DataTable.Rows)
{
    row[column] = Guid.NewGuid(); // or any other id 
}

现在您可以使用相同的代码导出到 Xml。

DataSet dataSet1 = new DataSet("Products");
products.TableName = "Product";
dataSet1.Tables.Add(products);
dataSet1.WriteXml(directory + "//matrix.xml");

【讨论】:

  • 感谢@Hari,这正是我想要的。我可以将 UniqueRow 移动到顶部吗,它现在在底部
  • 我很高兴,它有帮助。
  • 如何移动顶部的行
  • 你可以简单地设置column.SetOrdinal(0);
  • @OwaisAhmed 如果对您有用,请投票并标记为已接受。它可以帮助其他有类似问题/问题的人。
【解决方案2】:

试试:

products.column.add("uniqueID");
products.acceptchanges();

for each(datarow dr in products)
{
  int counter = 1
  dr["uniqueID"].Value = counter;
  counter++;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2023-03-21
    • 2015-03-21
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    相关资源
    最近更新 更多