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

Développement SQL Server Discussion :

Insérer une datatable dans une base de données SQL sans boucle


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Par défaut Insérer une datatable dans une base de données SQL sans boucle
    Bonjour,

    Je débute en SQL et en vb.net. Je fait une application en VB.net pour Ipaq.
    J'ai une fonction mise à jour, qui va chercher des données sur des clients dans un serveur SQL, qui les insere dans la datatable Table_OCRD puis, qui les insére dans le serveur SQLCe d'un IPAQ.
    Je voudrais savoir si c'est possible d'insérer une datatable dans une base de données SQL sans avoir à utiliser une boucle avec Insert Into pour insérer rangée par rangée.

    Pour l'instant, j'insère les données dans le server SQL Ce comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i As Integer = 0 To 300
     
                Dim SQLCmd2 As String = "INSERT INTO ClientGeneralReduit VALUES('" Table_OCRD.Rows(i).Item("CardCode").ToString & "'," & Table_OCRD.Rows(i).Item("rownb") & ...."')"
     
    Next
    Je voudrais savoir si je pourrais faire quelque chose qui ressemble à ca pour insérer ma table dans la base de données en une ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim SQLCmd2 As String = "select * into ClientGeneralReduit [in DataBaseGarde] from Table_OCRD"
    Est-ce que je dois creer un objet Command et un Dataset ?
    Fichiers attachés Fichiers attachés

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Par défaut Solution
    J'ai trouvé une solution ! C'est beaucoup plus rapide que les insert into. Je met 5 min a charger ma table sur le serveur. Avant je mettais, une heure !!

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    Try
                  Dim SQLCmd As String = "exec UpdateListeClient"
     
                  Table_OCRD = SQLServerMiseAjour.SendCmd(SQLCmd).Tables(0)
     
                ' je supprime les donnees de la table dans le serveur sqlce
                Dim SQLCmdCe As String = "DELETE from ClientGeneralReduit"
                SqlServerCe.SendCmd(SQLCmdCe, True)
     
                 Dim con As SqlCeConnection = SqlServerCe.GETConnection
            If con.State = ConnectionState.Closed Then con.Open()
     
            Using cmd As SqlCeCommand = New SqlCeCommand()
                cmd.Connection = con
                cmd.CommandText = "ClientGeneralReduit"
                cmd.CommandType = CommandType.TableDirect
     
                Using rs As SqlCeResultSet = cmd.ExecuteResultSet(ResultSetOptions.Updatable Or ResultSetOptions.Scrollable)
                    Dim record As SqlCeUpdatableRecord = rs.CreateRecord()
     
        For i = 0 To 17000
                        record.SetValue(0, Table_OCRD.Rows(i).Item("CardCode"))   record.SetValue(1, Table_OCRD.Rows(i).Item("rownb"))
                        record.SetValue(2, Table_OCRD.Rows(i).Item("Cardname"))
                        record.SetValue(3, Table_OCRD.Rows(i).Item("Address"))
                        record.SetValue(4, Table_OCRD.Rows(i).Item("ZipCode"))
                        record.SetValue(5, Table_OCRD.Rows(i).Item("City"))
                        record.SetValue(6, Table_OCRD.Rows(i).Item("Phone1"))
                        record.SetValue(7, Table_OCRD.Rows(i).Item("Freq1"))
                        record.SetValue(8, Table_OCRD.Rows(i).Item("U_BGDerniereLivr"))
                        record.SetValue(9, Table_OCRD.Rows(i).Item("U_BGLivraisonEnCour"))
                        record.SetValue(10, Table_OCRD.Rows(i).Item("U_BGListeNoire"))
                        record.SetValue(11, Table_OCRD.Rows(i).Item("U_BGendroitGeo"))
                        record.SetValue(12, Table_OCRD.Rows(i).Item("U_LEmpID"))
                        record.SetValue(13, Table_OCRD.Rows(i).Item("U_BGNbLitres"))
                        record.SetValue(14, Table_OCRD.Rows(i).Item("U_BGSTOPLI"))
                        record.SetValue(15, Table_OCRD.Rows(i).Item("Livreur"))
                        record.SetValue(16, Table_OCRD.Rows(i).Item("Liv2"))
                        rs.Insert(record)
                    Next
                End Using
     
            End Using
            con.Close()
     
     
     
                       Catch ex As Exception
                PanelProgression.Hide()
                MsgBox("erreur: " + ex.Message)
     
            End Try

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/09/2012, 09h00
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2003] Insérer la valeur d'une cellule dans une phrase d'une autre
    Par DonaldTron dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2009, 19h50
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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