【发布时间】:2013-03-06 00:19:38
【问题描述】:
我读到的每一条评论都说这段代码有效.. 但是当我尝试在文本框中输入文本时,没有自动完成出现,它只是闪烁..请帮助,我是 winforms 的新手
Private Sub txsCusID_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txsCusID.TextChanged
Dim cmd As New SqlClient.SqlCommand("SELECT DISTINCT fname + ' ' + lname AS clist FROM tblclient WHERE id LIKE '%" + txsCusID.Text.ToString + "%'", sqlconstr)
Dim ds As New DataSet
Dim da As New SqlClient.SqlDataAdapter(cmd)
da.Fill(ds, "list")
Dim col As New AutoCompleteStringCollection
Dim i As Integer
For i = 0 To ds.Tables(0).Rows.Count - 1
col.Add(ds.Tables(0).Rows(i)("clist").ToString())
Next
txsCusID.AutoCompleteSource = AutoCompleteSource.CustomSource
txsCusID.AutoCompleteCustomSource = col
txsCusID.AutoCompleteMode = AutoCompleteMode.Suggest
End Sub
【问题讨论】:
-
什么是 sqlconstr?如果它是一个实际的字符串,我认为它不会像 SqlCommand 期望一个实际的 SqlConnection 对象那样工作。如果您尝试单步执行代码,会发生什么?
-
@pinkfloydx33 sqlconstr 是一个 sqlclient.sql 连接。我尝试将 MsgBox(ds.Tables(0).Rows(i)("clist").ToString()) 放在 col.add... 之后,它显示了“名称”,所以我知道查询没有返回 null .
-
尝试删除 .ToString() 以使其成为
col.Add(ds.Tables(0).Rows(i)("clist"))ToString 会给你 Object.ToString 这通常只是你所说的“名称”
标签: vb.net winforms autocomplete textbox