为什么我的字符串返回一个字符?

时间:2012-06-26 18:46:45

标签: vb.net

我已经从我的数据库构建了一个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。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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