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 :

Connexion ADO, VB.Net


Sujet :

Windows Forms

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    oui, pas de souci au niveau de la connexion,
    mais je ne sais pas quoi mettre dans la requete... je ne peux pas faire un select * from sheet1

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    en fait c'est bien ça le problème, je ne sais pas comment ecrire la requete..

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Le code du projet (sous 2003) à l'époque :

    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
    Dim strConn As String = _
                    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                    "Data Source=" & file & ";Extended Properties=""Excel 8.0;" & IIf(FirstRowCols, "", "HDR=No;") & """"
                Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)
                objConn.Open()
                Dim TableSchema As DataTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
                Dim RangeName As String = "[" & TableSchema.Rows(Sheet)("TABLE_NAME").ToString() & "]"
     
                ' Create objects ready to grab data
                Dim objCmd As New System.Data.OleDb.OleDbCommand("SELECT * FROM " & RangeName, objConn)
                Dim objDA As New System.Data.OleDb.OleDbDataAdapter
                objDA.SelectCommand = objCmd
                ' Fill DataSet
                Dim objDS As New System.Data.DataSet
                objDA.Fill(objDS, RangeName)
                ' Clean up and return DataSet
                objConn.Close()
    On affichait le fichier Excel dans une DataGrid.

  4. #24
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    regarde ca vient d'un topic du forum

    et il fait bien une requete dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ADOCommand
                .ActiveConnection = Source
                .CommandText = "SELECT * FROM [feuil1$A1:A1]"  'attention ne pas oublier le $
    End With
    Cordialement

    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup pour votre aide!
    Mais je crois que je vais abandonner pour aujourd'hui.
    En tout cas merci

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    C'est reparti pour une journée de galère...

    je me retrouve avec des erreurs de cast pour les 2 dataset, celui avec la bdd s'affiche tout de meme dans le datagrid, par contre rien ne se passe avec excel..

    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
     
    Dim ConnexionA As New ClassBase
     
            ConnexionA.Connexion_access()
     
            Dim Requete As String = "SELECT * FROM OPERATION"
            Dim objDa As New OleDb.OleDbDataAdapter
            Dim objDs As New DataSet
            Dim objcmd As New OleDb.OleDbCommand
            Dim objdat As DataTable
     
            Try
                objcmd = New OleDb.OleDbCommand(Requete)
                objDa = New OleDb.OleDbDataAdapter(objcmd)
                objcmd.Connection = ConnexionA.connexion
     
                objDa.Fill(objDs, "OPERATION")
                objdat = objDs.Tables("OPERATION")
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
            DataGrid1.DataSource = objDs.Tables("OPERATION")
     
     
                Dim ConnexionE As New ClassBase
     
                ConnexionE.Connexion_Excel("C:\Documents and Settings\a806303\Desktop\Import_OP_CW03.xls")
     
                Dim objDa1 As New OleDb.OleDbDataAdapter
                Dim objDs1 As New DataSet
                Dim objcmd1 As New OleDb.OleDbCommand
                Dim objdat1 As DataTable
                Dim requete1 As String
     
            Try
     
                requete1 = "SELECT * FROM [sheet1$]"
                objcmd1 = New OleDb.OleDbCommand(requete1)
                objDa1 = New OleDb.OleDbDataAdapter(objcmd1)
                objcmd1.Connection = ConnexionE.connexion
     
                objDa1.Fill(objDs1, "OPERATION")
                objdat1 = objDs1.Tables("OPERATION")
                DataGrid2.DataSource = objDs1.Tables("OPERATION")
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Les erreurs se produisent sur quelles lignes exactement ?

  8. #28
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour,

    T'es bien matinal pour un stagiaire

    Tu rencontre quoi comme erreur/warning lors que tu travailles avec le fichier Excel?

    Cordialement

    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Je suis là depuis 7h

    l'erreur que j'obtiens pour les 2 :
    Specified cast is not valid
    Je crois que c'est à ce niveau là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objdat = objDs.Tables("OPERATION")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objdat1 = objDs1.Tables("OPERATION")
    Cependant, les données de la table access s'affiche quand même dans le datagrid1.

    Je suis desesperant :/

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Bon il y a un peu de nouveau, j'arrive à extraire les données du fichier excel par la requete SELECT * FROM [Sheet1$]

    Mais maintenant je n'arrive pas à faire la liaison entre les 2 dataset pour faire un insert...
    voiçi le code au complet :

    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
             Dim ConnexionA As New ClassBase
            ConnexionA.Connexion_access()
     
            Dim objDa As New OleDb.OleDbDataAdapter
            Dim objDs As New DataSet
            Dim objcmd As New OleDb.OleDbCommand
            Dim objdat As New Data.DataTable
            Dim Requete As String = "SELECT * FROM OPERATION"
     
            Try
                objcmd = New OleDb.OleDbCommand(Requete)
                objDa = New OleDb.OleDbDataAdapter(objcmd)
                objcmd.Connection = ConnexionA.connexion
     
                objDa.Fill(objDs, "OPERATION")
                objdat = objDs.Tables("OPERATION")
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
            DataGrid1.DataSource = objDs.Tables("OPERATION")
     
     
            Dim ConnexionE As New ClassBase
            ConnexionE.Connexion_Excel("C:\Documents and Settings\a806303\Desktop\Import_OP_CW03.xls")
     
            Dim objDa1 As New OleDb.OleDbDataAdapter
            Dim objDs1 As New DataSet
            Dim objcmd1 As New OleDb.OleDbCommand
            Dim objdat1 As New Data.DataTable
            Dim Requete1 As String = "SELECT * FROM [Sheet1$]"
     
            Try
                objcmd1 = New OleDb.OleDbCommand(Requete1)
                objDa1 = New OleDb.OleDbDataAdapter(objcmd1)
                objcmd1.Connection = ConnexionE.connexion
     
                objDa1.Fill(objDs1, "OPERATION")
                objdat1 = objDs1.Tables("OPERATION")
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
            DataGrid2.DataSource = objDs1.Tables("OPERATION")

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Tu dois faire quoi exactement ? Remplir ton Ds (celui de la DB) avec les données du fichier Excel ? En gros les fusionner

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    oui voilà, remplacer les données existantes dans la table par celles du fichier excel

  13. #33
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour
    Tu dos remplacer les données existants dans la base de données, par les données du fichier Excel si j'ai bien compris

    Tu peux essayer de faire un insert directement dans ta table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim requete as string = "Insert into taTable(champ1, champs2) Values(Select * from [Sheet1$] )
    Cordialement

    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Cela ne marche pas...
    ça commence à me rendre fou cette affaire!


  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Tu peux l'ajouter à la main sinon, tu parcours ton DataSetExcel, tu créer un Row, tu remplis le row et ensuite tu ajoutes le row dans le DataSetDB et tu fais un Update de DataSetDB.

    Regarde les fonctions du DataSet, tu as NewRow, etc.

Discussions similaires

  1. erreur de suntaxe connexion ADO.net
    Par bebo11 dans le forum SSIS
    Réponses: 14
    Dernier message: 25/05/2010, 19h41
  2. Connexion Ado.net Via : Mysql
    Par seksaki dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/03/2010, 01h54
  3. message d'erreur de connexion ado.net & sqlexpress
    Par mounim_taoufik dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/12/2009, 08h59
  4. connexion ado.net avec mysql ?
    Par seksaki dans le forum VB.NET
    Réponses: 1
    Dernier message: 21/11/2009, 15h55
  5. connexion ADO.Net à une base Firebird
    Par Herwin78800 dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 23/12/2006, 22h12

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