【问题标题】:Adding rows to data table using for loop使用 for 循环向数据表添加行
【发布时间】:2018-01-16 19:54:12
【问题描述】:

我有一个数据表,我想使用 for 循环向其中添加行,但是当我这样做时,循环卡住并且不起作用。

for (int i = 0; i < dt.Rows.Count; i++)
        {
            if (dt.Rows[i][1].ToString() == "")
            {
                DataRow newRow = dt.NewRow();
                newRow[1] = "data";
                dt.Rows.InsertAt(newRow, i);
            }

        }

【问题讨论】:

  • 如果这样不断增加行数,这不是无限循环吗?
  • 是的,但我仅在特定单元格为空白时才添加行。那么我该如何解决呢?
  • InsertAt 不会替换 i 处的行,而是在那里添加一个新行。为什么不只是dt.Rows[i] = newRow;?或者真的只是dt.Rows[i][1] = "data";,除非您希望将其他行更改为默认值。
  • 如果您有一行包含一个空单元格,您的代码将创建一个新行并将其插入到i 的行之前。行计数增加,带有空白单元格的同一行现在位于i+1。在下一次通过时,你做同样的事情。
  • 您的代码无法运行。如果您的表包含零行,则 dt.Rows.Count = 0。因此 i = 0 不小于零,因此您永远不会进入 for 循环。

标签: c# datatable datarow


【解决方案1】:

您的循环在您添加 dt.Rows.Count 时结束 - 但您的循环正在添加行,因此它永远不会结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多