所以,我有一个执行参数化LIKE查询的方法.该方法接收搜索参数/值,然后将其添加到准备查询的命令中.
它不起作用.它应该工作,当我编写值来直接搜索SQL字符串,没有参数化时,它确实有效!当我把它作为一个参数是不是!有任何想法吗.
这里有一些(假的,我已更改名称)示例代码.
myDataReader = SQLExecute("SELECT * FROM TableOfAwesomeness WHERE BestTVShow LIKE 'Arrested Development%'")
会工作.然而
Function MethodOfReturningHorror(ByVal TVShow as String) as SqlDataReader { dim command as new SQLCommand command.connection = sqlconnection command.CommandText = "SELECT * FROM TableOfAwesomeness WHERE BestTVShow LIKE '@tvShow%'" command.Parameters.Add("tvShow",TVShow) return command.ExecuteReader() }
为了懒惰/简洁,我错过了与问题无关的代码.所以忽略返回位和东西,所有重要的是数据读取器什么都不包含,而它在第一个例子中.我确信它与LIKE子句的参数化有关.
谢谢!
试试这个:
command.CommandText = "SELECT * FROM TableOfAwesomeness WHERE BestTVShow LIKE @tvShow + '%'"