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

VB.NET Discussion :

Copier un tableau excel vers une Database SQL


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien d'essai
    Inscrit en
    Avril 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien d'essai
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 61
    Points : 31
    Points
    31
    Par défaut Copier un tableau excel vers une Database SQL
    Bonjour je suis en train de travailler sur la copie d'un tableau Excel vers une database SQL dans un fichier mdf.

    J'ai réussi à adapter un code qui copie copie bien les données.

    Dans le fichier Excel, j'ai la ligne 1 qui sert de menu mais cela n'est pas gênant pour le fichier mdf, qui lui aussi a la premier ligne servant de menu.

    La ligne 2 du fichier Excel correspond bien à la ligne 2 du fichier mdf.

    Par contre, pour les colonnes j'ai un problème que je n'arrive pas à résoudre.

    Le contenu de la colonne A du fichier Excel n’apparaît pas dans la première colonne du fichier mdf puis que celui-ci est remplacé par les numéros de ID.

    Seul le titre indiqué dans la cellule A1 du fichier Excel va se placer dans la seconde colonne de la Database.

    Au final j'ai donc un décalage entre les titres et le contenu des données dans la Database.

    Quelqu'un pourrait-il me donner des explications ?

    Merci d'avance.


    Voici le code :

    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
     
        Public Sub MajSP()
            Dim SPxls As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & Form1.TextBox1.Text & "';Extended Properties=""Excel 12.0 Xml;HDR=Yes""")
            SPxls.Open()
            Dim query_excel As String = "Select * from [SP$]"
     
            Dim cmd As OleDbCommand = New OleDbCommand(query_excel, SPxls)
            Dim rd As OleDbDataReader
     
            Dim SP As New SqlConnection()
            Dim SPDatabase As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" & Application.StartupPath & "\List_B3.mdf;Integrated Security=True"
            SP.ConnectionString = SPDatabase
     
            SP.Open()
     
            Using bulkcopy As SqlBulkCopy = New SqlBulkCopy(SP)
                bulkcopy.DestinationTableName = "dbo.tb_SP"
     
                Try
                    rd = cmd.ExecuteReader
                    bulkcopy.WriteToServer(rd)
                    rd.Close()
                    SP.Close()
     
                    MsgBox("Mise à jour de la SP réussie", MsgBoxStyle.Information, "SP")
                    Form1.TextBox1.Text = ""
     
                Catch ex As Exception
                    MsgBox("Mise à jour de la SP impossible")
                End Try
     
            End Using
        End Sub

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Technicien d'essai
    Inscrit en
    Avril 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien d'essai
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 61
    Points : 31
    Points
    31
    Par défaut Copier un tableau excel vers une Database SQL
    Bon, je n'ai pas trouvé la solution pour décaler des données de 1 colonne en copiant dans la base.

    Par contre, j'ai supprimé la colonne ID définitivement, ce qui fait que maintenant la colonne A du fichier Excel est bien rempli dans la première colonne de la table.

    Je ne sais pas si l'absence de cette colonne a un impact mais pour l'instant j'ai au moins toutes les données.

    J'ai déjà pu effectuer une recherche de donnée dans une colonne en fonction de la valeur dans une autre colonne et çà ne pose pas de problème.

  3. #3
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Hello,

    Tu ne peux pas générer du CSV au lieu du Excel?
    C'est plus facile à manipuler et surtout beauuuucoup plus rapide à décoder !

    Je le fait comme ceci :

    Le nom du fichier correspond à la table.
    J'écris le début de la requête : "INSERT into NomDuFichier"

    Ensuite pour les colonnes et les valeurs j'ai une double boucle.

    La 1ere boucle lit la 1ere ligne du csv... elle contient le nom de colonne et ce nom est ajouté à la requête.

    Dans chaque colonne, j'ai une 2e boucle qui s'occupe d'ajouter les données dans la requête.
    J'exécute la requête sur chaque ligne.

    Je ne sais pas si c'est clair expliqué comme ça...

    Mais quand ça marche, il te suffit de générer ton CSV avec le nom de la table en nom de fichier et de nommer les colonnes de la même manière que les colonnes dans ta base de donnée.
    Et..... tu n'es plus dépendant du format de ton fichier !

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  2. Copier un tableau excel vers du word
    Par Colbix dans le forum Langage
    Réponses: 4
    Dernier message: 21/04/2010, 08h49
  3. comment copier un tableau excel dans une presentation sur meme format ?
    Par petitchat_miau dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 11/11/2008, 18h30
  4. Import Excel vers une base SQL Server / Framework 1.x
    Par myNonSpace dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/06/2007, 11h27
  5. Migrer un fichier excel vers une base sql serveur
    Par vdavid1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/07/2005, 16h26

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