3 votes

DB Query ne reconnaît plus les paramètres SQL dans une application existante lors du débogage dans VS2010

Je viens de commencer à travailler avec une application que j'ai héritée de quelqu'un d'autre et j'ai quelques problèmes. L'application est écrite en C# et s'exécute dans VS2010 avec le framework 3.5. Je ne peux pas exécuter l'application sur ma machine pour la déboguer, car elle ne reconnaît pas la manière dont les paramètres sont référencés lors de l'écriture des requêtes de la base de données.

Par exemple, chaque fois qu'il y a une requête SQL ou DB2, elle est écrite comme ceci :

using (SqlCommand command = new SqlCommand(
    "SELECT Field1 FROM Table1 WHERE FieldID=@FieldID", SQLconnection))
{
    command.Parameters.AddWithValue("FieldID", 10000);
    SqlDataReader reader = command.ExecuteReader();
    ...

Vous remarquerez que l'instruction "parameters.AddWithValue("FieldID", 10000) ;" n'inclut pas le symbole "@" du texte de la commande originale. Lorsque je l'exécute sur mon ordinateur, je reçois un message d'erreur indiquant que le paramètre "FieldID" est introuvable.

Je change cette ligne :

command.Parameters.AddWithValue("FieldID", 10000);

A ceci :

command.Parameters.AddWithValue("@FieldID", 10000);

Et tout va bien... jusqu'à ce que l'appel SQL suivant produise la même erreur. De toute évidence, il doit s'agir d'un paramètre dans Visual Studio, mais je ne trouve rien à ce sujet sur Internet. La moitié des exemples d'ajout de paramètres SQL sont écrits en incluant le "@" et l'autre moitié ne l'inclut pas. Il est fort probable que je ne sache pas quoi chercher.

Le dernier choix est de modifier chaque requête pour utiliser le "@" devant le nom du paramètre, mais il s'agit de l'application de transport et d'opérations utilisée pour gérer les expéditions de la société et il y a littéralement des milliers de paramètres. Difficile d'expliquer le retour sur investissement de votre projet lorsque la réponse à la question du directeur "Où en êtes-vous ?" est "Je travaille dur depuis une semaine et j'ai presque commencé".

Quelqu'un a-t-il rencontré ce problème, ou savez-vous comment désactiver ce paramètre afin de résoudre les noms de paramètres sans le "@" ?

1voto

Brackus Points 41

Le succès ! System.Data est automatiquement importé lorsque vous créez une solution .NET. J'ai supprimé cette référence et je l'ai rajoutée pour m'assurer que j'avais la dernière version de cette bibliothèque et cela a réglé le problème. Je devais avoir une ancienne version de cette bibliothèque qui a été introduite à l'origine... c'est tout ce que je peux imaginer.

0voto

manji Points 26778

Il est géré par les fournisseurs de données de .NET Framework et non par Visual Studio.

Cela dépend de la source de données. Regardez ici : Utilisation des caractères de remplacement des paramètres

Vous pouvez essayer de travailler avec System.Data.Odbc et en utilisant le question mark (?) titulaire de la place. Dans ce cas, n'oubliez pas d'ajouter les paramètres dans le même ordre qu'ils sont dans la requête.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X