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

Windows Forms Discussion :

plusieurs insert dans une requete


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 89
    Par défaut plusieurs insert dans une requete
    Bonjour,

    Pour envoyer plusieurs insert je concatene une variable string 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
     
    Do
                            newLigne = myLines(l)
                            ElementBis = newLigne.Split(";")
                            sqlSelect = sqlSelect & "INSERT INTO ligne  (IdMachine, dateTransaction,decision,codeModePaiement,nbDossiers,sommeTransaction,IdPointVente,trancheHoraire,IdTypeMachine) values  (" & (ElementBis(0)) & ",'" & ElementBis(1) & "','" & ElementBis(2) & "','" & ElementBis(3) & "'," & ElementBis(4) & "," & ElementBis(5) & "," & ElementBis(6) & "," & ElementBis(7) & "," & ElementBis(8) & "); "
     
                            l = l + 1
     
                        Loop While (l < myLines.Length - 1)
     
                        Dim CommandSQL As New SqlCommand(sqlSelect, con)
                        CommandSQL.CommandTimeout = 120
                        CommandSQL.ExecuteNonQuery()
    Y a t il une solution qui me permettait de realiser mes insert plus rapidement ?

    Merci !

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Par défaut
    je fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    execute_requete("Select * from ASSOCIER_DEMANDE", "ASSOCIER_DEMANDE")
                    ObjetDataRow = ObjetDataSet.Tables("ASSOCIER_DEMANDE").NewRow
                    ObjetDataRow("Num_Statut_demande") = 1
                    ObjetDataRow("Num_demande") = Me.label_code_demande.Text
                    ObjetDataRow("Date_associer_demande") = date_heure_demande_var
                    ObjetDataSet.Tables("ASSOCIER_DEMANDE").Rows.Add(ObjetDataRow)
                    ObjetCommandBuilder = New OleDb.OleDbCommandBuilder(ObjetDataAdapter)
                    ObjetDataAdapter.Update(ObjetDataSet, "ASSOCIER_DEMANDE")
                    ObjetDataSet.Clear()
                    ObjetDataAdapter.Fill(ObjetDataSet, "ASSOCIER_DEMANDE")

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Par défaut
    Bonjour,

    Si tu as sqlserver 2008, tu peux faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    INSERT INTO MyTable (FirstCol, SecondCol)
    VALUES ('First',1),
    ('Second',2),
    ('Third',3),
    ('Fourth',4),
    ('Fifth',5)
    Je te laisse le soin de le coder.
    Si tu as une version antérieur tu peux faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    INSERT INTO MyTable (FirstCol, SecondCol)
    SELECT 'First' ,1
    UNION ALL
    SELECT 'Second' ,2
    UNION ALL
    SELECT 'Third' ,3
    UNION ALL
    SELECT 'Fourth' ,4
    UNION ALL
    SELECT 'Fifth' ,5
    GO
    Voila, bonne journée.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 89
    Par défaut
    Merci de m'apporter votre aide
    J'ai sql server 2000


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    INSERT INTO MyTable (FirstCol, SecondCol)
    SELECT 'First' ,1
    UNION ALL
    SELECT 'Second' ,2
    UNION ALL
    SELECT 'Third' ,3
    UNION ALL
    SELECT 'Fourth' ,4
    UNION ALL
    SELECT 'Fifth' ,5
    GO
    Le select il fait une requete sur une autre table ?
    Parce que moi mes donnees proviennent de fichiers et non pas de table .
    Je peux quand meme l'utiliser ?

    Merci !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Par défaut
    oui tout a fait, le "select" ne pointe pas sur une table.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 89
    Par défaut
    Ca ne va pas plus vite de cette maniere !!

    Mon souci c'est que pendant un moment je n'ai aucune insertion de donnees j'ai meme le timeout de ma commandsql qui est depassee il est actuellement à 120 secondes
    Comment est ce que je peux savoir ce qu'il se passe à ce moment ?
    J'essaie d'inserer 60000 tuples et ça me prend plus de cinq minutes !!

    Merci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Par défaut
    J'ai pas dit que ca allait + vite.
    C'est peut etre ton schema de base de données qui n'est pas optimisé.
    Ca depend aussi des types de tes colonnes.

Discussions similaires

  1. PLusieurs COUNT dans une requete?
    Par haludo dans le forum Access
    Réponses: 3
    Dernier message: 04/10/2006, 11h38
  2. Réponses: 2
    Dernier message: 14/06/2006, 09h53
  3. Réponses: 2
    Dernier message: 20/06/2005, 15h57
  4. Plusieurs LIKE dans une requete ?
    Par beastman007 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/02/2005, 13h10
  5. Eviter plusieurs OR dans une requete SELECT
    Par zoubidaman dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/06/2004, 06h56

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