问题在vb中执行查询

时间:2010-08-13 05:42:21

标签: .net sql vb.net sql-server-2005

我的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()接受选择命令

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

2 个答案:

答案 0 :(得分:1)

您应该使用参数化查询。 然后vb.net将负责方便地转义字符串。

答案 1 :(得分:0)

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

在任何情况下,谷歌搜索“参数”+数据源(或“参数”+ sqlcommand等),你会得到一个关于如何操作的TON。 MSDN,VB帮助等也是尝试查找它的好地方。如果你尝试了,但仍然找不到答案,那就回来再问一遍。