当前位置:  开发笔记 > 数据库 > 正文

执行LIKE条件时参数化查询中断.为什么?

如何解决《执行LIKE条件时参数化查询中断.为什么?》经验,为你挑选了1个好方法。

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

谢谢!



1> Joel Coehoor..:

试试这个:

command.CommandText = "SELECT * FROM TableOfAwesomeness WHERE BestTVShow LIKE @tvShow + '%'"

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有