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

Dotnet Discussion :

Question sur les requêtes paramétrées en c# avec sqlite


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique
    Inscrit en
    Décembre 2014
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 457
    Par défaut Question sur les requêtes paramétrées en c# avec sqlite
    Salut à tous,

    J'ai une question sur ... les requêtes paramétrées avec sqlite (non sérieux ? )

    J'ai remarqué quelque chose que je m'explique difficilement, ce n'est pas un soucis de procéder autrement mais je pose la question pour comprendre en revanche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                        command.CommandText = "SELECT[Generation] FROM[Machines] WHERE[Generation] NOT LIKE @v_Generation GROUP BY [@g_Generation]";
                        command.Parameters.AddWithValue("@v_Generation", "100");
                        command.Parameters.AddWithValue("@g_Generation", "Generation");
    Un code passé comme ceci entraine un erreur de lecture de la colonne generation, apparemment @g_Generation n'est pas remplacé par "Generation"
    Si je lève les crochets, je n'ai pas d'erreur car tout bonnement ce n'est pas pris du tout en compte, donc j'aurais comme résultat la dernière ligne de ma table.


    Je trouve cela étrange, je me disais que logiquement ça agissait sur toute la chaine de l'instruction, or on dirait que non, a moins que je ne me sois loupé quelque part, ce qui n'est pas improbable.

    Ca n'opère que sur les "valeurs" ?

    Ce qui me chiffone c'est que dans mon cas j'entendais permettre certaines fonctions aux plugins qui se grefferaient mais je me rends compte que du coup je suis obligé de ne proposer qu'un nombre restreint de fonctions qui vont verrouiller du coup en amont, les requêtes, alors que je comptais laisser libre accès sur les requêtes de lecture par exemple.

    Merci.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    un DbParameter ne sert qu'à remplacer une valeur, et ca ne la remplace pas dans la requete d'ailleurs c'est une variable qui reste dans la requete en tant que variable
    group by attend un nom de colonne et ne peut pas être remplacé par une variable

    après tu peux faire "... group by" + variableC#
    ici c'est une concaténation avec une variable qui peut venir de ton code avant d'être envoyé à la base de données
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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