【问题标题】:How to iterate all items in a given row in the DataTable如何迭代DataTable中给定行中的所有项目
【发布时间】:2013-02-22 09:34:39
【问题描述】:

如何在DataTable 的给定行中迭代所有items。我有以下代码来迭代所有行,我想要另一个 For 循环来迭代给定行中的所有单元格?

For Each row As DataRow In dt.Rows

Next row

我可以访问每一行,但我想访问该行的每一列,因为我不知道列的名称和数量,..

【问题讨论】:

  • 你检查过任何答案吗?

标签: asp.net vb.net datatable


【解决方案1】:

您的代码是正确的。 你用这个代码...

Dim tbl As New DataTable()
Dim datarow As DataRow

tbl.Columns.Add("column1")

datarow = tbl.NewRow()
datarow("column1") = "Data1"

tbl.Rows.Add(datarow)
For Each dr As DataRow In tbl.Rows
    For Each value In dr.ItemArray
       Label1.Text = value.ToString()
    Next
Next

【讨论】:

    【解决方案2】:

    你也可以useDataRow.ItemArray来做这项工作

    代码看起来像这样

    For Each item As var In Row.ItemArray
        //do something
    Next
    

    【讨论】:

    • 此代码不正确。 value 具有(推断的)Object 类型。 VB.NET 中没有 var。
    【解决方案3】:

    你必须遍历DataRow.ItemArray。在C#,我们可以通过以下代码来实现:

     foreach (DataRow dr in dt.Rows)
       {
         foreach (var item in dr.ItemArray)
           {
                    Console.WriteLine(item);
           }
       }
    

    这相当于下面的 VB.NET 代码。

    For Each dr As DataRow In dt.Rows
        For Each item In dr.ItemArray
            Console.WriteLine(item)
        Next
    Next
    

    【讨论】:

    • 您可以将var 替换为objectDim
    • 如何获取 dr.ItemArray 中特定列的索引?
    • 使用for循环而不是foreach
    【解决方案4】:
    For Each row As DataRow In dt.Rows
        For Each column As DataColumn in dt.Columns
            Console.WriteLine(row(column))
        Next column
    Next row
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-10
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多