2010-08-13 77 views
0

我有一个SQL查询的问题。通过查询,我试图使用SQL LIKE命令在数据库中搜索列中任何出现的字符串(可以是任何内容)。问题在于,对于大多数字符串来说,它都可以正常工作,比如john,jim,ji“m,但是当我包含下列字符(',{,}和单引号)时不起作用。通过把它们放在[]块,每当用户进入他们关心的这些特殊情况。问题执行查询vb

但我得到以下错误,当我去查询使用GetSelectCommand()数据库中VB.NET

异常信息: 异常类型:System.Reflection.TargetInvocationException 异常消息:异常已被调用目标抛出。

内部异常异常信息(级别1): 异常类型:System.ApplicationException 异常消息:提供的值数量必须等于查询中占位符的数量。

我检查了一遍又一遍的查询..但它很好。

我的数据库服务器在SQL Server 2008中

所以我的应用程序抛出异常此命令:

使用Reader作为MustDisposeDataReader = pmSystem.DatabaseManager.GetSelectCommand(selectStatementBuilder.ToString(),新对象( ){})

其中MustDisposeDataReader是内部开发库中的一个类的实例,它继承自System.Object。 pmSystem是实现命令层的类PlanManagerSystem的一个实例。 GetSelectCommand()采取选择命令

有人可以告诉我该怎么办?

回答

1

您应该使用参数化查询。 然后vb.net将照顾方便地逃避字符串。

+0

能不能详细说一下???????? – Egalitarian 2010-08-13 08:19:50

0

有很多方法可以做到这一点。你的查询在哪里?它是在数据源对象中,还是在其他位置的代码中的sqlcommand对象?

在任何情况下,谷歌搜索“参数”+数据源(或“参数”+ sqlcommand等),你会想出一个TON的方法。 MSDN,VB帮助等,也是尝试查找它的好地方。如果你尝试了,仍然无法找到答案,那么再回来再问一次。