我的SQL查询有问题。通过查询我试图使用SQL LIKE命令在数据库中搜索任何出现的字符串(可以是任何内容)。问题是它适用于大多数字符串,例如john,jim,ji“m,但是当我包含以下字符(',{,}和单引号)时不起作用.MYSQL查询需要通过在用户输入时将它们放在[]块中来处理这些特殊情况。
但是当我使用VB.NET中的GetSelectCommand()查询数据库时,我收到以下错误
异常信息: 异常类型:System.Reflection.TargetInvocationException 异常消息:调用目标抛出了异常。
内部异常信息(级别1): 异常类型:System.ApplicationException 异常消息:提供的值的数量必须等于查询中的占位符数。
我一遍又一遍地检查了查询..但很好。
我的数据库服务器是Sql Server 2008。
所以我的应用程序在此命令中抛出异常:
使用reader As MustDisposeDataReader = pmSystem.DatabaseManager.GetSelectCommand(selectStatementBuilder.ToString(),New Object(){})
其中MustDisposeDataReader是内部开发的库中的类的实例,它继承自System.Object。 pmSystem是实现命令层的类PlanManagerSystem的一个实例。 GetSelectCommand()接受选择命令
有人可以告诉我该怎么做???
答案 0 :(得分:1)
您应该使用参数化查询。 然后vb.net将负责方便地转义字符串。
答案 1 :(得分:0)
有很多方法可以做到这一点。你的查询在哪里?它是在数据源对象中,代码中的sqlcommand对象,在其他地方吗?
在任何情况下,谷歌搜索“参数”+数据源(或“参数”+ sqlcommand等),你会得到一个关于如何操作的TON。 MSDN,VB帮助等也是尝试查找它的好地方。如果你尝试了,但仍然找不到答案,那就回来再问一遍。