c# - 重复的数据表列名

标签 c# datatable

我有一个包含列名 I0、I1、I2 等的数据表。但是这些不是实际的列名。我将列名存储在另一个表中。

然后我有一个循环来映射实际的列名称,如下所示:

for (int i = 0; i < dt_key.Rows.Count; i++)
{
    dt_data.Columns[i].ColumnName = dt_key.Rows[i][0].ToString();
}

我收到以下错误:

A column named 'Pressure' already belongs to this DataTable.

A column named 'Size' already belongs to this DataTable.

最终我试图将其写入 xml 文件:

dt_data.WriteXml(filename);

这行得通,但我最终得到了列名 I0..I22

有类似的问题,但他们试图制作具有重复列名的数据表。我只是想打印出一个包含重复列名的表。执行此操作的好方法是什么?

编辑:

我可以做以下事情:

for (int i = 0; i < dt_key.Rows.Count; i++)
{
    dt_data.Columns[i].ColumnName = dt_key.Rows[i][0].ToString() + " " + dt_data.Columns[i].ColumnName;
}

最佳答案

我认为对您的问题的简短回答是,使用 DataTable 无法获得重复的列名。您究竟将此 XML 用于什么目的?有许多替代方法可以生成 XML,为您提供更细粒度的控制。

您可以使用 XmlWriter 对象手动创建文件。 This method创建一个写入文件的 XmlWriter

关于c# - 重复的数据表列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994185/

相关文章:

c# - 在 ListView 控件中显示数据表

c# - 将帐户链接到事件 CRM

c# - 单击事件未在动态添加的 LinkBut​​ton 上触发

c# - yield return 的线程安全性(是吗?)

sql-server - 为什么 Invoke-Sqlcmd -OutputAs DataTables 为一条记录和多条记录返回不同的类型

c#删除数据表中的重复行

javascript - 一页上的多个数据表不起作用

C#:合并数据表中的数据行

c# - 使用 ADAL C# 作为 secret 用户/守护程序服务器/服务器到服务器 - 401 未经授权

c# - "ulong == ulong?"评估为 "ulong == ulong"工作正常