簡體   English   中英

vb.net datatable按特定列名循環遍歷行

[英]vb.net datatable loop through rows by specific column name

嗨,我試圖只在特定列中循環行。 但是我沒有成功,任何人都可以幫助我。 這是我的代碼,myXvalue =“CPI”是列標題Name。

Dim myXvalue = "CPI"

 For Each column As DataColumn In dt.Columns


                If column.ColumnName = myXvalue Then

                    For k As Integer = 0 To dt.Rows(myXvalue).Count - 1

                        Console.WriteLine(myXvalue & " === " & dt.Rows(0)(k).ToString)


                    Next

                    Console.ReadKey(True)


                End If

一種。 在visual basic.net中,更好的做法是定義字段或類型的類型。
使用Dim myXvalue As String = "CPI"而不是Dim myXvalue = "CPI"
如果你熟悉c#,這個約定與c#中的var不完全相同:
VB的Dim和C#的var一樣嗎?

下面的代碼是實現您所需要的一種方式。

Private Sub Func()
    Dim myXvalue As String = "CPI"
    Dim colIndex As Integer = -1

    For i As Integer = 0 To dt.Columns.Count - 1
        If dt.Columns(i).ColumnName = myXvalue Then
            colIndex = i
            Exit For
        End If
    Next

    If colIndex = -1 Then
        ' only for safty if this column name is not exist
        Exit Sub
    End If

    For i As Integer = 0 To dt.Rows.Count - 1
        Console.WriteLine((myXvalue & "===" & dt.Rows(i).Item(colIndex).ToString()))
    Next

    Console.ReadKey(True)
End Sub

這應該可以解決問題。

Dim dt As New DataTable()
For Each dr As DataRow In dt.Rows
    If dr.Item("myColumnHeaderName").ToString = "certainColumnValue" Then
        Console.WriteLine(dr.Item("myColumn").ToString())
    End If
Next

通過這個,您可以從一列獲得所有項目的列表

Dim col_allitems as string = myData.Rows.Cast(Of DataRow).Select(Function(row) row.Item(1).ToString)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM