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 :

Constructeur de requête SQL


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut Constructeur de requête SQL
    Bonjour,

    voilà, je viens de PHP et je suis un FAN de Drupal,
    ils ont fait un système super qui permet de construire des requêtes sous cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db_query("INSERT INTO Table1(NOM, PRENOM, AGE) VALUES(%s, %s, %d", $nom, $prenom, $age);
    Existe t'il un moyen de faire quelque chose d'équivalent ou mieu en C# (ou si ça existe déjà de manière native)?

    Il y a String.Format(); mais le nombre d'arguments est limité à 3 au maximum, il y a toujours la possiblité de passer par un tableau, mais il ne permet pas l'ajout de caractères ("%s", "%s", %d).

    Au pire il y a les requêtes paramétrés.

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Et pourquoi ne pas passer par des procédures stockées? C'est efficaces, sécurisé et en plus.. c'est fait pour ça

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Les procédures stockées, oui, pourquoi pas, j'y pensais pas.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par dtcSearch Voir le message
    Il y a String.Format(); mais le nombre d'arguments est limité à 3 au maximum
    Non, il n'y a aucune limite...

    Mais de toutes façon il vaut mieux utiliser une requête paramétrée, c'est plus sûr (pas de risques d'injection SQL, pas de problème de format de date ou de nombre...)
    http://johannblais.developpez.com/tu...s-donnees/#LIV

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    oké, bon, bah j'ai la confirmation alors,
    je vous remercie, je vais me mettre aux requêtes paramétrés.


    Une autre question, juste histoire de...

    J'aimerai créer une requête en fonction des Control dans mon Form,
    par exemple, un INSERT, quel est la meilleur manière de faire?

    Personnellement, je construit une variable tableau pour les CHAMPS et une autre pour les VALUES.

    ensuite je construit la requête partie par partie.

    Je pense pas que ce soit une très bonne façon de faire, auriez vous mieu?
    Les requêtes paramétrés dans ce cas? comment les exploiter correctement?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    J'ai trouvé ça:
    http://www.codeproject.com/KB/databa...ryBuilder.aspx

    mais c'est pas super...

    Auriez vous autre chose?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    J'utilise le même principe (une variable avec la liste des colonnes, une autre avec la liste des valeurs). Si tu utilises une requête paramétrée, il suffit de mettre des trucs genre @champ1 au lieu mettre directement la valeur de champ1, et d'ajouter les paramètres à la requête au fur et à mesure que tu construis la liste des valeurs.

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. Constructeur de requête sql en java
    Par vinzzzz dans le forum Persistance des données
    Réponses: 3
    Dernier message: 08/09/2009, 16h18
  3. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  4. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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