我正在尝试使用LIKE在我的SQL语句中实现一个简单的搜索:
Using cmd As New OracleCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "select * from TABLE where FIELD like '%:text%'"
cmd.Parameters.AddWithValue("text", searchValue)
...
End Using
这不起作用 - 参数化搜索值的最佳方法是什么?
答案 0 :(得分:9)
select * from TABLE where FIELD like ('%' || :text || '%')
答案 1 :(得分:3)
更新:我的不好,如果您使用的是oracle驱动程序,请参阅this link寻求帮助。这取决于您使用哪个驱动程序进行数据库访问,如果是oledb,您需要执行以下操作 这里是更正后的代码:
Using cmd As New OracleCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "select * from TABLE where FIELD like ?"
cmd.Parameters.AddWithValue("@text", '%'+searchValue+'%')
...
End Using
如果是oracle驱动程序,您需要执行以下操作:
Using cmd As New OracleCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "select * from TABLE where FIELD like :text"
cmd.Parameters.AddWithValue(":text", '%'+searchValue+'%')
...
End Using
答案 2 :(得分:1)
在这种情况下,我更喜欢这种语法:
select * from TABLE where INSTR(FIELD, :text) > 0