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 :

[ADO.NET] 2 tables dans le Datagrid


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 401
    Par défaut [ADO.NET] 2 tables dans le Datagrid
    Bonjour,

    J'suis pas très doué en ADO et j'aimerai affiché un dataset dans un datagrid dont le dataset provient d'une requête contenant 2 tables liées

    J'arrive à le faire quand il y a qu'une table mais plus d'une table c'est la galère .

    j'ai essayé un truc du genre mais sans succès car il n'y a rien qui s'affiche.


    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
     
     Try
        If MyConnexion.State = ConnectionState.Closed Then MyConnexion.Open()
            Dim MyDataSet As New DataSet
     
            Dim MyObjetCommand As New OleDbCommand("SELECT * FROM Table1", MyConnexion)
            Dim MyDataAdapter As New OleDbDataAdapter(MyObjetCommand)
     
            Dim MyObjetCommand2 As New OleDbCommand("SELECT * FROM Table2", MyConnexion)
            Dim MyDataAdapter2 As New OleDbDataAdapter(MyObjetCommand2)
     
            MyDataAdapter.Fill(MyDataSet, "Table1")
            MyDataAdapter2.Fill(MyDataSet, "Table2")
     
            MyDataSet.Relations.Add("MyRelation",  MyDataSet.Tables("Table1").Columns("Index_Table1"), MyDataSet.Tables("Table2").Columns("Index_Table1"))
     
            MyDataGrid.DataSource = MyDataSet
      Catch ex As Exception
             MessageBox.Show(ex.ToString, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
      Finally
             If MyConnexion.State = ConnectionState.Open Then  MyConnexion.Close()
      End Try
    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 77
    Par défaut
    bonjour

    J'avais fait le même programme que toi en utilisant la Bd Northwind et ça marche et je ne sais pas pourquoi ça Marche pas pour toi c'est koi l 'erreur que tu obtient ?

    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
     
    Try
       cn.Open()
       Dim ds As New DataSet
       Dim cmd1 As New OleDbCommand("SELECT * FROM Customers", cn)
       Dim da1 As New OleDbDataAdapter(cmd1)
       Dim cmd2 As New OleDbCommand("SELECT * FROM Orders", cn)
       Dim da2 As New OleDbDataAdapter(cmd2)
       da1.Fill(ds, "Clients")
       da2.Fill(ds, "Commandes")
       ds.Relations.Add("Realtion_C_O", ds.Tables("Clients").Columns("CustomerID"), ds.Tables("Commandes").Columns("CustomerID"))
       dg.DataSource = ds
       Catch ex As Exception
           MessageBox.Show("Erreur !!! " & ex.Message)
       End Try
    bonne chance

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 401
    Par défaut
    j'ai pas de message d'erreur tout s'exécute normalement sauf que j'ai rien qui s'affiche.

    Et toi les données s'affiche ?
    Tu les affiches dans un datagridview ?
    as tu modifié un paramétrage du datagridview ?


    merci pour ton aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 77
    Par défaut
    salut

    oui les deux tables client et commandes s'affichent et lorsque je clique sur un client il me montre ses commandes
    je n ai pas trouché au DataGrid

    regarde du coté de tes deux tables sont elles vraiment en relation ?
    bon chance

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 77
    Par défaut
    salut

    J'ai même ajouté une deuxième relation et ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    Dim cmd3 As New OleDbCommand("SELECT * FROM [Order Details]", cn)
    Dim da3 As New OleDbDataAdapter(cmd3)
    da1.Fill(ds, "Clients")
    da2.Fill(ds, "Commandes")
    da3.Fill(ds, "Détails Commandes")
    ds.Relations.Add("Realtion_C_O", ds.Tables("Clients").Columns("CustomerID"), ds.Tables("Commandes").Columns("CustomerID"))
     ds.Relations.Add("Realtion_O_D", ds.Tables("Commandes").Columns("OrderID"), ds.Tables("Détails Commandes").Columns("OrderID"))
    ...
    A+

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 401
    Par défaut
    j'ai réussi mais avec une autre méthode.

    Je te remercie pour tout le temps que tu as consacré.

    Maintenant je sais que l'ancien code est juste et je vais pourvoir chercher pourquoi chez toi oui et pas chez moi.
    je garde l'ancien code sous le coude et je chercherai plus tard car il faut que j'avance mon dev.

    encore merci de ton aide.

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

Discussions similaires

  1. [vb.net] double click dans une datagrid
    Par bguihal dans le forum VB.NET
    Réponses: 6
    Dernier message: 15/12/2005, 17h18
  2. [VB.NET] champ datetime dans un datagrid
    Par HULK dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/12/2005, 14h26
  3. [VB.NET] Command Name dans un datagrid
    Par Sadneth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/11/2005, 11h11
  4. [VB.NET] ajouter combobox dans un datagrid
    Par HULK dans le forum Windows Forms
    Réponses: 6
    Dernier message: 27/10/2005, 14h30
  5. [VB.NET] Disparition scrollBar dans une DataGrid
    Par aphykite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2004, 10h29

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