【问题标题】:Search button for a database in vb.net for listview在 vb.net 中搜索列表视图的数据库按钮
【发布时间】:2021-12-20 12:32:30
【问题描述】:

下面的代码没有搜索,一直显示错误。它应该使用数字搜索记录。

Private Sub btn_search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_search.Click
    Me.Sales_fileBindingSource.Filter = "Receipt Number LIKE '" & "%'" & txt_search.Text & "%'"
End Sub

显示的错误是:语法错误:“数字”运算符后缺少操作数。 Click here to see error screenshot

【问题讨论】:

  • 我认为您的 ' 位置不正确,试试这个。 Me.Sales_fileBindingSource.Filter = String.Format("Receipt Number LIKE '%'{0}'%'", txt_search)
  • 试过了,但仍然显示同样的错误。

标签: database vb.net search


【解决方案1】:

如果代码使用interpolated string,会更容易查看发生了什么,所以它可能会像这样结束:

Me.Sales_fileBindingSource.Filter = $"[Receipt Number] LIKE '%{txt_search.Text}%'"

必须将列名放在方括号中,因为其中有一个空格 - DataView RowFilter Syntax [C#] 有语法示例(过滤器的语法与语言无关)。

如果您使用的是旧版本的 Visual Basic,在引入插值字符串之前(2015 年),您将需要以下内容:

Me.Sales_fileBindingSource.Filter = String.Format("[Receipt Number] LIKE '%{0}%'", txt_search.Text)

虽然有点长,但仍然比使用大量 " & x & "'-type 代码更容易看到正在发生的事情。

【讨论】:

  • '$' 在该代码中出现错误“字符无效”
  • @Prince 看起来您使用的是旧版本的 Visual Studio,所以我添加了适用于此的代码。
  • 谢谢安德鲁。检查我最近的解决方案以了解有效的代码。
【解决方案2】:

终于明白了!我所要做的就是使用一个低于分数将两个单词 Receipt 和 Number 连接到一个这样的“Receipt_Number” 还进行了其他更改,例如使用 String.Format。检查下面的代码。

 Me.Sales_fileBindingSource.Filter = String.Format("(Convert(Receipt_Number, 'System.String') LIKE '%{0}%')", txt_search.Text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多