我制作了程序来填写清单框中的员工姓名。现在我需要一个搜索框来搜索组合框中的项目。当我输入匹配的项目必须在选中的列表框中列出。为什么我在vb.net中编码? 在按键甚至驱动部分我给出了代码,但它不能正常工作。请提供足够的信息。我的代码在下面给出
Private Sub TextBox1_TextChanged(sender as Object,e As EventArgs)处理TextBox1.TextChanged
Dim conobj As Class1
conobj = New Class1
conobj.connection()
Dim str1 = "select distinct e.vc_empname xxxxxxx e.vc_empname like '" & Me.TextBox1.Text & "%' order by e.vc_empname"
conobj.readdata1(str1)
CheckedListBox1.DataSource = conobj.ds.Tables(0)
CheckedListBox1.DisplayMember = "vc_empname"
CheckedListBox1.ValueMember = "vc_empname"
End Sub
答案 0 :(得分:0)
即使“但它不能正常工作”也很模糊,我会试一试。使用As
子句指定别名。另外,使用Where
来过滤记录:
Dim str1 = "select distinct e.vc_empname As xxxxxxx e.vc_empname Where vc_empname like '%" & Me.TextBox1.Text & "%' order by e.vc_empname"
请注意,您应始终使用sql-parameters来防止sql-injection和其他问题。我也强烈discourage from global connection classes喜欢你的Class1
,它也拥有连接。如果是Shared
/ static
,则更多。这可能会导致默认情况下启用的连接池问题。如果不公开连接和其他ADO.NET对象,则使用Using
- 语句(您应该使用)也更加困难。如果方法readdata1
不接受它们,那么传递sql参数也很困难。