我有一个数据表,包含两行:id char(9),eh char(4)。这两行都包含数值(我无法更改),例如123456789。
查询 SELECT id,eh FROM tab WHERE id LIKE'123456789' 直接在MySQL-client中运行正常,在VB.net中也是如此。
但是如果我在VB.net中使用参数而不是构建查询字符串,则查询返回空行。这就是我所做的(不是完整的代码):
Dim com As New MySqlCommand
com.CommandText = "SELECT id,eh FROM tab WHERE id LIKE @i"
com.Parameters.Add("@i", MySqlDbType.VarChar)
com.Parameters("@i").Value = number
我认为,连接器不会发送字符串的引号(可能因为只有数字),因为如果我将MySQL客户端中的第一个查询更改为... LIKE 123456789,我也会得到空行
您对我有任何提示或解决方法吗?
答案 0 :(得分:0)
尝试
MySqlDbType.String
作为参数类型。
注意..我没有使用MySql,但是一个快速的谷歌提出了字符串char。
修改强>
也许你错过了@i
周围的撇号com.CommandText = "SELECT id,eh FROM tab WHERE id LIKE '@i'"