vb.net 获取唯一一个数据表行值单元格并将其与文本框进行比较

vb.net get an only one datatable row value cell and compare it with a textbox

如何获取只有一个数据表行的单元格值?我需要将它与文本框进行比较。 像这样:

If dttest.Rows.Count < 2 Then
                For counter As Integer = 0 To dttest.Rows.Count - 1
                    If TextBox1.Text = MyDataTable.Rows(1).RowName ' but doesn't accept this format
                        Process.Start("http:\www.google.it")
                    End If
                Next
            End If

更新完整代码:

Public Class Form2
    Private dttest As DataTable
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Dim dvtest As New DataView
        dvtest = dttest.DefaultView
        dvtest.RowFilter = "test Like '%" + TextBox1.Text + "%'"
    End Sub

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ListBox1.DataSource = Getdata()
        ListBox1.DisplayMember = "test"
    End Sub

    Private Function Getdata() As Object
        dttest = New DataTable()
        dttest.Columns.Add("test", GetType(String))
        dttest.Rows.Add("test1")
        dttest.Rows.Add("test2")
        Return dttest
    End Function
End Class

如何获取单行值,例如 dttest.Rows.Add("test1") ?

如果您的 DataTable 如下所示:

 ColumnName1   ColumnName2
 value1        hello
 value2        my name is
 value3        username

如果您想将 TextBox1.Text 与第 3 行的第 2 列进行比较,则可以使用:

Dim searchedValue As String = Nothing    
searchedValue = MyDataTable1.Rows("value3").Item("ColumnName2").ToString 

If TextBox1.Text = searchedValue
    Process.Start("http:\www.google.it")
End If

希望对您有所帮助。

编辑:

' First, you create your DataTable with this function
Private Function GetData() As Object
    Dim dttest As New DataTable()
    dttest.Columns.Add("test", GetType(String))
    dttest.Rows.Add("test1")
    dttest.Rows.Add("test2")

    ' If you want to get the first value (firstRow and firstColumn)
    ' MsgBox(dttest.Rows(1).Item(0).ToString) ' you will get test1

    ' If you want to get the second value (secondRow and firstColumn)
    ' MsgBox(dttest.Rows(2).Item(0).ToString) ' you will get test2
Return dttest
End Function

然后,当您必须处理 TextBox1 上的 TextChanged event 时,才能知道用户何时修改了您的 TextBox1 的文本。

Public Sub textBox1_TextChanged() Handles TextBox1.TextChanged
    If dttest.Rows.Count <= 2 Then
        For counter As Integer = 0 To dttest.Rows.Count - 1
            If dttest.Rows(counter).Item(0).ToString = TextBox1.Text Then
                Process.Start("http://google.it")
            End If
        Next
    End If
End Sub