如何通过循环数据表上特定列的每一行来检查值?

How to check value from looping every rows with spesific coloumn on datatable?

我想循环我的数据表的每一行,特定列的值是 1,2,3。但是,该值只检查了数字 1。如何检查循环中的每个值?

   Dim cmd2 As New SqlCommand("Select * from Compartment where OrderFK='1254'", con)
    dr = cmd2.ExecuteReader(CommandBehavior.CloseConnection)

  Dim dt As New DataTable()
    dt.Load(dr) 'Here from datareader
    For Each row As DataRow In dt.Rows
        Dim x As Integer = dt.Rows(0)("CNumber").ToString
        If x = 2 Then
            Loading_No.Value = 2
        Else
           loading_no.value = "Empty"
        End If
    Next

谢谢,

要了解您的循环经过了多少行,只需在循环中放入一个计数器即可。我想知道的是这一行: Dim x As Integer = dt.Rows(0)("CNumber").ToString 你声明 x 是一个整数并给它分配一个字符串?

如果使用 foreach 循环查询检索到的行集,则应使用 foreach 索引器(行)读取 CNumber 列的当前值,而不是立即将检索到的值添加到 TextBox值到 StringBuilder 将当前值附加到先前读取的值。在循环结束时,将所有内容写入 TextBox 值 属性

Dim cmd2 As New SqlCommand("Select * from Compartment where OrderFK='1254'", con)
dr = cmd2.ExecuteReader(CommandBehavior.CloseConnection)
Dim dt As New DataTable()
dt.Load(dr) 'Here from datareader

Dim sb = new StringBuilder()
For Each row As DataRow In dt.Rows
    Dim value = row("CNumber").ToString()
    if value = "1" OrElse value = "2" OrElse value = "3" Then
        sb.Append(row("CNumber").ToString & "," )
    End If
Next
If sb.Length = 0 Then 
    sb.Append("Empty")
Else
    ' remove the last comma '
    sb.Length = sb.Length - 1
End If
loading_no.Value = sb.ToString()

另请注意,您可以删除循环中的 if 测试,修改您的查询以仅检索您感兴趣的记录

Dim cmdText = "Select * from Compartment where OrderFK='1254' " & _
              "AND CNumber IN(1,2,3)"