【问题标题】:Can I add the same DataRow to a DataTable multiple times?我可以多次将相同的 DataRow 添加到 DataTable 中吗?
【发布时间】:2010-11-22 20:49:45
【问题描述】:

如果我有一个 DataTable 并想创建一个新行,我首先调用 DataTable.NewRow(),它返回一个 DataRow。然后这一行有表格的架构,我可以设置行中每个字段的值。此时表是否“知道”该行,还是仅在我调用 DataTable.Rows.Add(DataRow row) 后才发生?

如果我多次调用DataTable.Rows.Add(),那么在数据表中创建的重复行是否具有重复值?

我问的原因是我正在尝试编写一个递归函数,该函数将遍历树结构并使用值填充 DataTable。因此,我遇到为每个子级创建的行将具有具有所有相同值的列的情况,因为它们来自父级。

所以我的想法是将包含父母信息的 DataRow 传递给每个孩子。孩子将添加其信息,然后将行添加到表中。但我想弄清楚是否需要为每个孩子调用DataTable.NewRow(),或者如果我多次添加同一行,是否会自动创建新行。

【问题讨论】:

  • 哇 - 10 小时前问过,当我去寻找类似的东西时已经出现在谷歌中。谢谢!

标签: ado.net recursion datatable dataset


【解决方案1】:

是的,老问题。但迈克尔的回答确实有效。我需要为调度应用程序添加多个重复行到 DataTable。使用dt.Rows.Add(_Users) 我得到了错误:

这一行已经属于这个表

但是使用它,我可以循环并根据需要保留尽可能多的职位空缺其中“长度”是职位空缺的数量:

int Length = int.Parse(TextBox6.Text.Trim());
for (int i = 0; i < Length; i++)
{
  Users.Rows.Add("9999", "Open");
}

在 Google 上搜索这很糟糕,因为大多数人希望删除 DataTable 中的重复行,而不是在 DataTable 中添加重复行。

【讨论】:

    【解决方案2】:

    我建议您将数据放入数组中,然后将数据添加到数据表中 例如

    yourDataTable.Rows.Add(data[0]........);
    

    newdatarow会产生异常错误

    【讨论】:

      【解决方案3】:

      不,但是复制一行很容易,这样您就可以获得所需的内容(假设现有行位于名为 existingRow 的变量中):

      var newRow = dataTable.NewRow();
      newRow.ItemArray = existingRow.ItemArray;
      dataTable.Rows.Add(newRow);
      

      【讨论】:

        【解决方案4】:

        不,它会生成 System.ArgumentException 类型的异常。

        【讨论】:

        • 是否有一种简单的方法可以创建具有相同值的 Duplicate DataRow?
        猜你喜欢
        • 2020-04-29
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        • 2012-05-03
        • 2011-06-15
        • 2012-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多