IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Syntaxe des paramètres dans une requête


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 19
    Points
    19
    Par défaut Syntaxe des paramètres dans une requête
    Bonjour,

    J'utilise les DbProviderFactories avec des DbCommand contenant des requêtes paramétrées. Tout fonctionne bien lorsque je me connecte avec le provider SqlClient mais pas avec le provider OleDb.

    La syntaxe de mes paramètres dans la requête est du type @nomduparamètre (qui se trouve être la syntaxe de Sql Server, je pensais qu'elle était générique ). Après plusieurs recherches, je me suis aperçu qu'avec OleDb il fallait utiliser ? sans nom de paramètre (il prend les paramètres en fonction de leur position).

    Étant donné que le but est d'être le plus générique possible, je voudrais savoir si il n'y a pas une syntaxe compatible pour gérer ces paramètres.

    Merci!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 19
    Points
    19
    Par défaut
    Finalement j'ai trouvé une solution à mon problème. Je modifie le nom du paramètre lorsque j'ajoute ce nouveau paramètre à ma DbCommand comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    public static void CreateParameter(DbCommand command, string parameterName, object value)
            {
                // Application de la syntaxe appropriée en fonction du provider
                if (providerDb == "System.Data.OleDb")
                {
                    parameterName = "?";
                }
                else if (providerDb == "System.Data.SqlClient" || providerDb == "System.Data.Odbc")
                {
                    parameterName = "@" + parameterName;
                }
                else if (providerDb == "System.Data.OracleClient")
                {
                    parameterName = ":" + parameterName;
                }
     
                DbParameter parameter = command.CreateParameter();
                parameter.ParameterName = parameterName;
                parameter.Value = value;
                command.Parameters.Add(parameter);
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment passer des paramètres dans une requête XPATH
    Par SyLvErStOrM dans le forum BIRT
    Réponses: 18
    Dernier message: 29/04/2011, 11h08
  2. [OpenOffice][Base de données] Afficher des paramètres d'une requête paramétrée dans un formulaire
    Par ggnore dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 02/09/2009, 11h37
  3. Réponses: 1
    Dernier message: 21/03/2006, 14h29
  4. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  5. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo