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

Accès aux données Discussion :

Problème relier base de donnée et datagrid


Sujet :

Accès aux données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Problème relier base de donnée et datagrid
    Bonsoir à tous,

    Je dois réaliser une application vb.net relié à une bdd access pour gérer un stock de matière.
    Je passe par un datagrid pour afficher ma base de donnée

    Je me suis beaucoup inspiré de la FAQ et des cours de ce forum or je n'arrive toujours pas à le faire.

    De plus lorsque je relie directement le datagrid à ma bdd un message d'erreur apparaît en me disant:

    "Le fournisseur 'Microsoft.ACE.OLEDB.12.0' n'est pas inscrit sur l'ordinateur local".

    J'ai cherché sur gogol mais je ne trouve pas les paramètres dans vb que les helpers donne sur d'autre forum...

    Si quelqu'un comprend pourquoi mon code ne marche pas ou pourquoi j'ai ce message d'erreur et comment le modifier,
    cela me serait d'une grande aide!!!

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    Public Class Form1
     
        ' Déclaration Objet Connection
     
        Private ObjetConnection As OleDbConnection
     
        ' Déclaration Objet Commande
     
        Private ObjetCommand As OleDbCommand
     
        ' Déclaration Objet DataAdapter
     
        Private ObjetDataAdapter As OleDbDataAdapter
     
        ' Déclaration Objet DataSet
     
        Private ObjetDataSet As New DataSet
     
        ' Déclaration Objet DataTable
     
        Private ObjetDataTable As New DataTable
     
        'String contenant la 'Requête SQL'
     
        Private strSql As String
     
        'Paramêtres de connexion à la DB
     
        Private strConn As String
     
        ' Déclaration d'un  OleDbCommandBuilder
     
        Private ObjetCB As OleDbCommandBuilder
     
        Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
     
        End Sub
    End Class
     
     
    'Le bouton ButtonAfficheGrid remplie le DataGrid avec DataBase1.accdb table 'STOCK_ASD'
     
    Private Sub ButtonAfficheGrid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        _Handles(ButtonAfficheGrid.Click)
     
        'Initialisation de la chaîne de paramètres pour la connexion
     
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= C:\Users\alexandre\Documents\Gesto\WindowsApplication1\bin;"
     
        'Initialisation de la chaîne contenant l'instruction SQL
     
        strSql = "SELECT STOCK_ASD.* FROM STOCK_ASD"
     
        'Instanciation d'un Objet Connexion
     
        ObjetConnection = New OleDbConnection
     
        'Donner à la propriété ConnectionString les paramètres de connexion
     
        ObjetConnection.ConnectionString = strConn
     
        'Ouvrir la connexion
     
        ObjetConnection.Open()
     
        'Instancier un objet Commande
     
        ObjetCommand = New OleDbCommand(strSql)
     
        'Instancier un objet Adapter
     
        ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
     
        'initialiser l'objet Command
     
        ObjetCommand.Connection() = ObjetConnection
     
        'initialiser l'objet OleCBComandBuilder (sinon pas d'update)
     
        ObjetCB = New OleDbCommandBuilder(ObjetDataAdapter)
     
        'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
     
        ObjetDataAdapter.Fill(ObjetDataSet, "STOCK_ASD")
     
        'Créer une datatable à partir du dataset
     
        ObjetDataTable = ObjetDataSet.Tables("STOCK_ASD")
     
        'Mettre dans le DataGrid une table  DataTable
     
        DataGrid1.DataSource = ObjetDataTable
     
    End Sub
     
    'Le bouton ButtonMiseA jour met à jour DataBase1.accdb si on a fait une modification dans le DataGrid.
     
    Private Sub ButtonMiseAJour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        _Handles(ButtonMiseAJour.Click)
     
        'Mettre à jour
     
        ObjetDataAdapter.Update(ObjetDataSet, "STOCK_ASD")
     
    End Sub

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    J'ai essayé une autre technique en passant par un fichier excel cette fois çi
    et ça à l'air d'à peu près fonctionner. Enfin au moins j'ai pas les message d'erreur que j'avais avant.
    Je suis aussi sous visual studio 2012, je sais pas si ça change quelque chose.
    Enfin bref voici mon nouveau 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
    34
    35
    36
    37
    Imports System.Data.OleDb
     
    Public Class form1
     
        Dim cn As OleDbConnection
        Dim cm As OleDbCommand
        Dim da As OleDbDataAdapter
        Dim dt As DataTable
     
        Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
     
            cn.Close()
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            'ouvrir connection a test.xls
            cn = New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Alexandre\Documents\STOCK.xls;Extended Properties=Excel 8.0;")
            cn.Open()
            'charger le fichier de test.xls into datagridview1
            FillDataGridView("select * from [mat$]")
        End Sub
     
        Private Sub FillDataGridView(ByVal Query As String)
            da = New OleDbDataAdapter(Query, cn)
            dt = New DataTable
            da.Fill(dt)
            With DataGridView1
                .DataSource = dt
                .Columns(0).HeaderText = "Id"
                .Columns(1).HeaderText = "Nama Agen"
                .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
            End With
     
        End Sub
    End Class
    SI vous savez pourquoi ça me donne un message d'erreur de ce type :
    "Une exception de première chance de type 'System.Data.OleDb.OleDbException' s'est produite dans System.Data.dll"
    pouvez vous m'aider car la je n'en peu vraiment plus!!
    Merci et bon appétit.
    Alex

Discussions similaires

  1. [VB6]Débutant - Problèmes de base de données?
    Par steeves5 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/06/2006, 22h05
  2. Problème conexion base de données MSSql DBE
    Par kaouane dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/05/2006, 12h40
  3. Réponses: 3
    Dernier message: 27/04/2006, 15h21
  4. Problème accès base de données
    Par alainconnu dans le forum Outils
    Réponses: 3
    Dernier message: 27/04/2006, 09h31
  5. Problème Update Base de données avec les composants ADO
    Par lingli dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/04/2006, 00h41

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