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