所以,我有一个执行参数化 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 子句的参数化有关。
谢谢!