【问题标题】:VB.net autocomplete textbox textchanged for 3 characters minVB.net 自动完成文本框 textchanged 最少 3 个字符
【发布时间】:2016-05-02 15:23:28
【问题描述】:

对于 Windows 桌面 VB.NET 应用程序,我尝试仅在用户键入 3 个或更多字母时调用自动建议。数据库包含数千行,我不想在表单加载时加载所有行。我只想在需要时从数据库中获取与前几个字母匹配的项目。

目前为止

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    If Len(TextBox1.Text) >= 3 Then
        'invoke autosuggest
    End If
End Sub

然后不确定如何调用自动建议以便用户不必输入全文,我的查询将类似于:

Select Fullname, email from Contact where fullname like & textbox1.text order by full name

任何方向或代码建议将不胜感激。

【问题讨论】:

  • 在数据库中查询以TextBox1.Text 开头的字符串列表。将此列表设置为TextBox1.AutoCompleteSource

标签: sql-server vb.net winforms


【解决方案1】:

您可以将查询更改为:

 Dim cmd As SqlCommand
        Dim con As SqlConnection ='your connexion string here

        Dim csql As String = "Select Fullname, email from Contact where fullname like @SEARCH  order by full name"

        cmd = New SqlCommand(csql, con)
         cmd.Parameters.AddWithValue("@SEARCH", "'" + TextBox1.Test + "%'")
        cmd.ExecuteNonQuery()

也可以使用

 If TextBox1.Text.Length >3 Then
        'invoke autosuggest
    End If

而不是

  If Len(TextBox1.Text) >= 3 Then
        'invoke autosuggest
    End If

【讨论】:

  • 谢谢。如何将数据链接到文本框?
  • 您可以为您的文本框使用自动完成功能,请查看此链接:msdn.microsoft.com/en-us/library/…。如果答案对您有帮助,请标记并投票
  • SQL 注入漏洞!
  • @VisualVincent 无论如何都不是我的答案,但你介意显示你提到的SQL Injection vulnerability 吗?
  • @zaggler :好吧,我对 SQL 了解不多,但这对我来说似乎是一个漏洞:'" & textbox1.text & "%'
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多