-3
Dim strText As String = tbRefine.Text
Dim sql As String = "SELECT user_name,forename,surname,game_cash,reg_group FROM tblGame WHERE user_name LIKE '" + strSearchText + "' & '*'"
Dim dsRefine As New DataSet
GetDataset(sql, "tblGame", dsRefine)

MsgBox(dsRefine.Tables("tblGame").Rows(0).Item(2).ToString)

这不起作用,它崩溃并说数据集中没有任何内容。我知道数据集函数像以前一样成功地工作。当我将 sql 语句打印到 microsoft access 中时,它工作正常。我究竟做错了什么

4

5 回答 5

8

试试这个:

"SELECT user_name,forename,surname,game_cash,reg_group
 FROM tblGame
 WHERE user_name LIKE '%" + strSearchText + "%'"
于 2012-11-27T11:29:53.423 回答
1

尝试RTRIM()在您的行中使用该功能:

Dim sql As String = "SELECT user_name,forename,surname,game_cash,reg_group FROM tblGame WHERE RTRIM(user_name) LIKE '" + strSearchText + "' & '*'"

于 2018-10-29T21:00:19.367 回答
0

你喜欢的前导或尾随 % 符号怎么样?

目前,您将得到一个 where 子句,例如:

LIKE 'searchtext''*'

这看起来有点奇怪(我假设是 SQL 服务器?)。

于 2012-11-27T11:30:46.300 回答
0

使用 SQL 参数更明智,因为您的方法对 SQL 注入开放。下面的链接将帮助您了解如何格式化 SQL 语句。我还建议通过存储过程进行操作,但帽子是可选的...

http://forums.asp.net/t/1256985.aspx

于 2012-11-27T11:34:41.530 回答
0

我认为还有一件事要提到:“*”通配符适用于 VB/VBA/MS-Access 中的“Like”运算符,但不适用于 T-SQL。T-SQL 中“Like”运算符的正确通配符是“%”。这就是为什么这个 T-SQL 语句:

Select... WHERE ... LIKE 'sText*'

在 MS-SQL(使用 T-SQL)中没有返回没有任何语法错误的数据,但在 MS-Access 中有效。

于 2019-07-11T00:44:15.317 回答