[英]How to filter DataGridView and manage it?
我是VB.Net和Window Forms的新手。 我正在對表進行過濾,以便在搜索機器中輸入的單詞可用於顯示僅相關的信息(行)。 我在展示代碼后會解釋我的情況:
Private Sub findTextBox2_TextChanged(sender As Object, e As EventArgs) Handles findTextBox2.TextChanged
Dim viewPerson As DataView
viewPerson = New DataView(Data.ds.Tables("PersonInfos"))
If Not String.IsNullOrEmpty(Me.findTextBox2.Text) Then
Dim person As String = FilterListBox("PersonInfos", Me.findTextBox2.Text)
viewPerson.RowFilter = "ID in (" & person & ") "
Else
viewPerson.RowFilter = ""
End If
DataGridView2.DataSource = viewPerson
con.Close()
End Sub
在此過濾之后,將顯示表“PersonInfos”中的所有信息(所有列)。 如果我只想顯示表中的“姓氏”,“年齡”和“國籍”列(在.mdb文件中),則只顯示。 我應該在代碼中包含什么。
我在線搜索,並沒有設法找到我的問題的解決方案。 任何幫助都感激不盡。 先感謝您。
這是FilterListBox方法里面的內容:
Private Function FilterListBox(ByVal TableName As String, ByVal tbText As String) As String
Dim IDs As String = String.Empty
If tbText.Contains("*") Then
If Not tbText.StartsWith("*") Then
tbText = "^" + tbText
End If
tbText = tbText.Replace("*", ".*")
If tbText.Contains("?") Then
tbText = tbText.Replace("?", ".")
End If
For Each row As DataRow In data.ds.Tables(TableName).Rows
If System.Text.RegularExpressions.Regex.IsMatch(row.Item("Name"), tbText, System.Text.RegularExpressions.RegexOptions.IgnoreCase) Then
If IDs <> "" Then IDs &= ","
IDs &= row.Item("ID")
Dim dfd As String = row.Item("Name").ToString()
Dim a As Boolean = System.Text.RegularExpressions.Regex.IsMatch(row.Item("Name"), tbText, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
End If
Next
Else
For Each row As DataRow In data.ds.Tables(TableName).Rows
If row.Item("Name").ToString.StartsWith(tbText, StringComparison.CurrentCultureIgnoreCase) Then
If IDs <> "" Then IDs &= ","
IDs &= row.Item("ID")
Dim dfd As String = row.Item("Name").ToString()
Dim a As Boolean = System.Text.RegularExpressions.Regex.IsMatch(row.Item("Name"), tbText, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
End If
Next
End If
If IDs <> "" Then
Return IDs
Else
Return "1=2"
End If
End Function
嘗試這個
Dim viewPerson As DataView
Dim da As New OleDbDataAdapter
Dim tbl as New DataTable
da = New OleDbDataAdapter("SELECT Last Name, Age, Nationality FROM PersonInfos", con)
da.Fill(tbl)
viewPerson = New DataView(tbl)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.