2010-08-13 5 views
0

J'ai un problème avec une requête sql. Grâce à la requête, j'essaie de rechercher dans la base de données les occurrences de chaîne (peut être n'importe quoi) dans une colonne à l'aide de la commande SQL LIKE. Le problème est que cela fonctionne bien pour la plupart des chaînes, disons john, jim, ji "m, mais ne fonctionne pas quand j'inclure les caractères suivants qui sont (', {,}, et un guillemet simple). soin de ces cas particuliers, en les mettant en [] bloc à chaque fois que l'utilisateur les saisit.PROBLEME EXECUTION d'une requête dans vb

Mais je reçois l'erreur suivante quand je vais interroger la base de données à l'aide du GetSelectCommand() dans VB.NET

informations sur l'exception : Type d'exception: System.Reflection.TargetInvocationException Message d'exception: Une exception a été émise par la cible d'un appel

information d'exception (niveau 1): Type d'exception: System.ApplicationException Message d'exception: Le nombre de valeurs fournies doit être égal au nombre d'espaces réservés dans la requête.

J'ai vérifié la requête encore et encore .. mais son amende.

Mon serveur de base de données est Sql Server 2008.

Donc, mon application renvoie l'exception dans cette commande:

lecteur en utilisant comme MustDisposeDataReader = pmSystem.DatabaseManager.GetSelectCommand (selectStatementBuilder.ToString(), un nouvel objet () {})

où MustDisposeDataReader est une instance d'une classe dans une bibliothèque développée en interne, qui hérite de System.Object. pmSystem est une instance de la classe PlanManagerSystem qui implémente le commandlayer. GetSelectCommand() prend la commande select

quelqu'un peut me dire ce qu'il faut faire ???

Répondre

1

vous devez utiliser une requête paramétrée. Puis vb.net se chargera d'échapper les cordes commodément.

+0

pouvez-vous élaborer un peu ???????? – Egalitarian

0

Il existe de nombreuses façons de procéder. Où est votre requête? Est-ce dans un objet de source de données, un objet sqlcommand dans le code derrière, ailleurs? Dans tous les cas, faites une recherche google pour "paramètre" + datasource (ou "paramètre" + sqlcommand, etc.), et vous obtiendrez une TON de how-to dessus. MSDN, l'aide de VB, etc. sont également de bons endroits pour essayer de le rechercher. Si vous essayez et ne trouvez toujours pas de réponse, revenez et demandez à nouveau.