0

我已经从我的数据库中构建了一个 DataTable。然后我遍历行并尝试访问一个字符串,但是该值作为字符串中的每个字符返回。

    For Each theseRows In DisplayForm.MainTab.Rows
        If theseRows.Item("Last_Name") = userLast And theseRows.Item("First_Name") = userFirst Then
            For Each RGCode As String In theseRows.Item("Trap_Code")
                MessageBox.Show(RGCode)
                                Next
        End If
    Next

Trap_Code 值是两个或三个字母的字符串,返回值是每个字母一次。该循环似乎将字符串的各个字符作为数组循环,而不是显示整个值,这正是我所希望的。只是寻求一些帮助和建议。

谢谢你,RL。

4

2 回答 2

2

您已明确要求遍历 的值Trap_Code

For Each RGCode As String In theseRows.Item("Trap_Code")

那是获取单个值(theseRows只是一行,请记住 - 您可能想要更改变量名称),它是一个字符串。然后,您以唯一的方式迭代字符串 - 作为字符序列。

鉴于您已经在遍历行,为什么还要在If语句中循环呢?我怀疑你只是想要:

For Each theseRows In DisplayForm.MainTab.Rows
    If theseRows.Item("Last_Name") = userLast And theseRows.Item("First_Name") = userFirst Then
        MessageBox.Show(theseRows.Item("Trap_Code"))
    End If
Next

或者为单行使用更好的名称(并且减少缩进以避免滚动):

For Each row In DisplayForm.MainTab.Rows
  If row.Item("Last_Name") = userLast And row.Item("First_Name") = userFirst Then
    MessageBox.Show(row.Item("Trap_Code"))
  End If
Next
于 2012-06-26T18:49:16.703 回答
0

我相信您只需要删除每个循环的内部:

For Each theseRows In DisplayForm.MainTab.Rows
    If theseRows.Item("Last_Name") = userLast And theseRows.Item("First_Name") = userFirst Then
            MessageBox.Show(theseRows.Item("Trap_Code"))
    End If
Next
于 2012-06-26T18:50:27.257 回答