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 :

C# Comment exécuter plusieurs insert?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Par défaut C# Comment exécuter plusieurs insert?
    Bonjour,

    comme le titre l'indique j'aimerais savoir comment effectuer plusieurs insert après avoir cliquer sur mon bouton submit.

    Je m'explique :
    J'ai créé plusieurs textbox. Ces textbox sont chacune reliées à ma base de données.

    Voici ma table dans laquelle les textbox insère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table kmr
    (
          nom_vehicule varchar2(10),
          type_destination varchar2(20),
          valeur_km integer
    );
    La valeur des textbox donne la valeur du champ valeur_km. le nom_vehicule et type_destination sont déjà fixé dans mon insert, seule la valeur du champ valeur_km est entrée. Donc si je rempli 2 textbox j'aimerais que 2 lignes s'insèrent dans ma base.

    Voici mes insert correspondant chacun à une textbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into kmr(nom_vehicule, type_destination, valeur_km) values ('bus', 'x', '"+textbox1.text"');
    insert into kmr(nom_vehicule, type_destination, valeur_km) values ('tram', 'y', '"+textbox2.text"');
    J'aimerais donc savoir si c'était possible de remplir 2 textbox (par exemple) et d'insérer deux lignes d'un coup car cmd.executenonquery(), ne prend qu'une commande en compte.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je ne crois pas qu'on puisse, mais pour de meilleures performances tu peux passer par une requête paramétrée (cela t'immunisera d'ailleurs contre les injections SQL).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 250
    Par défaut
    Citation Envoyé par UzuG4 Voir le message
    d'insérer deux lignes d'un coup car cmd.executenonquery(), ne prend qu'une commande en compte.
    ET ?

    Ou est le problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd.CommandText = "insert into kmr(nom_vehicule, type_destination, valeur_km) values ('bus', 'x', '" + textbox1.text + "');" + Evironment.NewLine; 
    cmd.CommandText += "insert into kmr(nom_vehicule, type_destination, valeur_km) values ('tram', 'y', '" + textbox2.text + "');";
    Et oui, je confirme, cmd n’exécute qu'une "commande" à la fois, fût-elle, elle-même composée de plusieurs requêtes sql.

    2 conseils hors sujet : Regarder du coté des requêtes paramétrées et s’intéresser au vaste sujet des transactions


  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Quelle est la limite de longueur d'un tel batch?

    Car si ça ne scale pas, ce n'est pas bon.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/04/2011, 11h20
  2. comment exécuter plusieurs requêtes ensemble avec Pentaho
    Par bfelicien2000 dans le forum Pentaho
    Réponses: 0
    Dernier message: 01/12/2010, 17h31
  3. Exécuter plusieurs insert en une seul fois
    Par Lorenzox dans le forum Débuter
    Réponses: 3
    Dernier message: 04/11/2010, 14h35
  4. [SSAS][2K5]Comment exécuter plusieurs Create en séquence ?
    Par masterx_goldman dans le forum SSAS
    Réponses: 1
    Dernier message: 27/10/2009, 15h45
  5. Réponses: 10
    Dernier message: 03/04/2008, 15h58

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