通过消除除 seacrhed 行之外的所有其他行,通过文本框在已填充的列表视图中搜索
Posted
技术标签:
【中文标题】通过消除除 seacrhed 行之外的所有其他行,通过文本框在已填充的列表视图中搜索【英文标题】:Search in already filled listview through textbox by eliminating all other rows except seacrhed row 【发布时间】:2021-11-16 01:45:34 【问题描述】:我已经从 DataTable dt4 填充了一个 ListView。我已经在全球范围内声明,下面是我的代码,但代码没有给出搜索到的字符串,而是在任何按键上再次加载。
请帮我写代码
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
conn = GetConnect()
conn.Open()
dt4.Select("ServiceName like '%" + TextBox1.Text + "%' ")
With ListView3
.View = View.Details
.GridLines = True
.Columns.Clear()
.Items.Clear()
.Columns.Add(" ", 30)
.Columns.Add("CPT Code", 80, HorizontalAlignment.Left)
.Columns.Add("Service Name", 350, HorizontalAlignment.Left)
For Each row As DataRow In dt4.Rows
'Add Item to ListView.
Dim item As ListViewItem = New ListViewItem
item.SubItems.Add(row("CPTCode").ToString())
item.SubItems.Add(row("ServiceName").ToString())
item.Checked = False
.Items.Add(item)
item = Nothing
Next
End With
End Sub
【问题讨论】:
您的意思是dt4
再次加载还是ListView3
再次加载?
我不知道,但它再次加载满行而不搜索任何字符串
是的,你用it
这个词,可以对应它们中的任何一个,我问的是哪个
无论如何在全局声明时如何刷新 dt 表示数据表
我从未使用过 DataTable,但我快速搜索了一下,可能找到了答案,请参阅我的答案。此外,您似乎为 TextBox 中的每次击键创建了一个 [database?] 连接,这非常浪费,但我看不到 dt4 是如何更新的,但我也不知道 DataTables。
【参考方案1】:
Select 的结果应该有你想要的行
Dim rows = dt4.Select("ServiceName like '%" + TextBox1.Text + "%' ")
For Each row As DataRow In rows
来自DataTable.Select
【讨论】:
我的数据表我已经全局声明了,现在的问题是相同的数据在 Listview 中重复,如何清除旧数据并将新数据输入 listview以上是关于通过消除除 seacrhed 行之外的所有其他行,通过文本框在已填充的列表视图中搜索的主要内容,如果未能解决你的问题,请参考以下文章