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访问时,它工作正常。我做错了什么
答案 0 :(得分:6)
试试这个:
"SELECT user_name,forename,surname,game_cash,reg_group
FROM tblGame
WHERE user_name LIKE '%" + strSearchText + "%'"
答案 1 :(得分:1)
尝试在您的行中使用RTRIM()
函数:
Dim sql As String = "SELECT user_name,forename,surname,game_cash,reg_group
FROM tblGame
WHERE RTRIM(user_name) LIKE '" + strSearchText + "' & '*'"
答案 2 :(得分:0)
你喜欢的前导或尾随%符号怎么样?
目前你最终会得到一个where子句,如:
LIKE 'searchtext''*'
看起来有点奇怪(我假设SQL服务器?)。
答案 3 :(得分:0)
使用SQL参数更明智,因为您的方法对SQL注入是开放的。下面的链接将有助于如何格式化SQL语句。我也建议通过商店程序来做,但是帽子可选......
答案 4 :(得分:0)
我认为还有一件事要提到: 在VB / VBA / MS-Access中,“ *”通配符适用于“像”运算符,但在T-SQL中不起作用。 在T-SQL中,“ Like”运算符的正确通配符为“%”。 这就是为什么此T-SQL语句:
Select... WHERE ... LIKE 'sText*'
在MS-SQL(使用T-SQL)中不返回任何数据且没有任何语法错误,但在MS-Access中有效。