Duracelle123
Messages postés59Date d'inscriptionlundi 11 janvier 2010StatutMembreDernière intervention 4 août 2015
-
2 févr. 2015 à 01:58
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
2 févr. 2015 à 20:33
Bonjour, Je programme avec Visual studio 2010. J'ai une base de données Access 2010 nommé ListeEpicerie avec plusieurs tables. Lorsque je lis la première table mon dataSet est bon. Lorsque je lis la deuxième table j'ai le nom de colonne de la table précédente et seulement les deux premiers champs de la nouvelle table. Voici mon code:
'Dans un module: Module mod_BDD Dim con As New OleDb.OleDbConnection Dim dbProvider As String Dim dbSource As String Dim ds As New DataSet Dim da As OleDb.OleDbDataAdapter Dim schemaTable As DataTable
Catch ex As Exception MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message) End Try
End Sub
Public Sub Deconection() Try con.Close()
Catch ex As Exception MessageBox.Show(ex.Message) End Try
End Sub
Public Function LireUneTable(ByVal sql As String)
ds.Clear() da = New OleDb.OleDbDataAdapter(sql, con) da.Fill(ds, "ListeEpicerie") Return ds
End Function
End Module
'Dans la form:
Public Class frm_BaseDonnees
Dim ds As New DataSet
Private Sub Base_Donnees_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Call mod_BDD.conextion()
End Sub
Private Sub BTR_INGREDIENTS_Click(sender As Object, e As System.EventArgs) Handles BTR_INGREDIENTS.Click
'Lie la table. ds = mod_BDD.LireUneTable("select * from Ingredients") 'Afficher la table dans le datagridview. DGV_BDD.DataSource = ds.Tables("ListeEpicerie")
End Sub
Private Sub BTR_REPAS_Click(sender As Object, e As System.EventArgs) Handles BTR_REPAS.Click
'Lie la table. ds = mod_BDD.LireUneTable("select * from Repas") 'Afficher la table dans le datagridview. DGV_BDD.DataSource = ds.Tables("ListeEpicerie")
End Sub
end class
Je tente de lire dans un premier temps la table "Ingredients" l'afficher dans mon DataGridView et ça fonctionne. Par la suite en clic quand sur le bouton BTR_REPAS lire la table "Repas" et l'afficher dans le même DataGridView en ne conservant pas la table précédente. Lors de la lecture de la deuxième table, mon dataSet n'est pas bon
Merci de votre aide
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 2 févr. 2015 à 10:08
Bonjour
Ce n'est pas ainsi que je procéderai.
Si tu as un module pour ta bdd ,tu devrais écrire tes requêtes dans
le module et donner un nom différent à chaque datatable
et non dans ta form
dans ton module
Public function LireIngredient() as dataset ds.Clear() da = New OleDb.OleDbDataAdapter("select * from Ingredients", con) da.Fill(ds, "ListeIngredient") Return ds
End Function
Public function LireRepas() as dataset ds.Clear() da = New OleDb.OleDbDataAdapter("select * from Repas", con) da.Fill(ds, "ListeRepas") Return ds
End Function
dans ta form
Private Sub BTR_INGREDIENTS_Click(sender As Object, e As System.EventArgs) Handles BTR_INGREDIENTS.Click
'Lie la table ingredients ds = mod_BDD.LireIngredient 'Afficher la table dans le datagridview. DGV_BDD.DataSource = ds.Tables("ListeIngredient")
End Sub
Private Sub BTR_REPAS_Click(sender As Object, e As System.EventArgs) Handles BTR_REPAS.Click
'Lie la table repas. ds = mod_BDD.LireRepas 'Afficher la table dans le datagridview. DGV_BDD.DataSource = ds.Tables("ListeRepas")