DataSet avec plusieurs tables

Résolu
tibblou Messages postés 10 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 26 avril 2008 - 19 janv. 2007 à 18:05
wacssine Messages postés 59 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 1 décembre 2013 - 26 févr. 2008 à 17:46
Bonjour,


Je suis en train de développer une application VB en ado.net, avec une base de
données ACCESS contenant 3 Tables (Utilisateur, PC, Logiciel).


Ce programme me permettra de référencer les Utilisateurs, leurs Pc ainsi que
les Logiciels installés sur chacun d'entres eux.


L'affichage des informations se fait par des Listbox.


J'ai crée la connexion, qui se connecte sur la BD, ainsi que tous les objets
nécessaires (DataSet, Command, DataAdapter, Datable...).

Toutes les informations que j'attends de la Table Utilisateurs s'affichent dans
les différentes Listbox (elles se mettent à jour automatiquement si je
sélectionne un autre utlisateur)


Le problème, c'est que je souhaite à présent afficher les informations de la
table PC, qui coïncideraient à la sélection de l'utilisateur (donc de la table
Utilisateur) via un champs commun contenu dans les deux tables et qui se nomme
: "IDPC".

Ma question est la suivante :


- Comment dois-je faire, pour que les deux champs Utilisateur.Idpc et Pc.Idpc
soient communs, afin que l'affichage des listbox soit cohérant ?

Exemple : l'IDPC sélectionné de la table utlisateur, soit le même
IDPC présélectionné de la table PC ???? <!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Image_x0020_1" o:spid="_x0000_i1026" type="#_x0000_t75"
style='width:11.25pt;height:11.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\DOCUME~1\Beuz!\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.gif"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->


J'ai lus pleins de tutoriaux à propos des DataSet et du Sql, mais je bloc...<!--[if gte vml 1]><v:shape
id="Image_x0020_2" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:11.25pt;
height:11.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\DOCUME~1\Beuz!\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.gif"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->


Ci dessous la déclaration des Objets pour la table Utilisateur (qui marche)
sachant que la connexion est déjà établie. Actuellement les informations de la
table PC s'affichent, mais la présélection de l'IDPC n'est pas commun avec
celui de l'IDPC de la table Utilisateur.

ObjetDataSet.Clear()

        strConn =
"Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="
& Application.StartupPath & "\bd1.mdb;"

        ObjetConnection = New
OleDbConnection()

        ObjetConnection.ConnectionString =
strConn

        ObjetConnection.Open()


        strSql = "SELECT *. FROM
UTILISATEUR"

        ObjetCommand = New
OleDbCommand(strSql)

        ObjetDataAdapter = New
OleDbDataAdapter(ObjetCommand)

        ObjetCommand.Connection() =
ObjetConnection

        ObjetDataAdapter.Fill(ObjetDataSet,
"UTILISATEUR")

        ObjetDataTable =
ObjetDataSet.Tables("UTILISATEUR")


        ListBox2.DataSource =
ObjetDataSet.Tables("UTILISATEUR")

        ListBox3.DataSource =
ObjetDataSet.Tables("UTILISATEUR")

        ListBox4.DataSource =
ObjetDataSet.Tables("UTILISATEUR")

        ListBox5.DataSource =
ObjetDataSet.Tables("UTILISATEUR")

        ListBox6.DataSource =
ObjetDataSet.Tables("UTILISATEUR")

        ListBox7.DataSource =
ObjetDataSet.Tables("UTILISATEUR")


        ListBox2.DisplayMember =
"IDUSER"

        ListBox3.DisplayMember =
"NOM"

        ListBox4.DisplayMember =
"PRENOM"

        ListBox5.DisplayMember =
"MPSESSION"

        ListBox6.DisplayMember =
"EMAIL"

        ListBox7.DisplayMember = "IDPC"
   
   

        strSql = "SELECT PC.* FROM PC"

        ObjetCommand = New
OleDbCommand(strSql)

        ObjetDataAdapter = New
OleDbDataAdapter(ObjetCommand)

        ObjetCommand.Connection() =
ObjetConnection

        ObjetDataAdapter.Fill(ObjetDataSet,
"PC")

        ObjetDataTable = ObjetDataSet.Tables("PC")

       

        ListBox14.DataSource =
ObjetDataSet.Tables("PC")
       
ListBox14.DisplayMember = "IDPC"


J'espère avoir été clair...n'hésitez pas à me faire parvenir vos remarques.


Merci d'avance !!!!

6 réponses

Gwendal3 Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 15 août 2011
22 janv. 2007 à 16:25
Salut,

Tu pourrais créer une liaison entre les tables dans ton DataSet.... Mais là je ne sais pas comment faire....

Autrement, je chargerais le DataSet en mémoire come tu as fait, et je crérais un DataView qui permettait de trier, rechercher dans une table charger dans un DataSet.
Ainsi, lorsque l'utilisateur séletionnera un "Utilisateur" dans une liste, tu récupères l'ID, tu le passe en paramètre dans le DataView de ta table PC et normalement tu obtiens tes infos....

Tiens nous au courant

Gwendal
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 janv. 2007 à 18:13
Pas la peine de poster 2 fois la même question, surtout avec aussi peu de temps d'intervale !

Ta première question est supprimée.
0
tibblou Messages postés 10 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 26 avril 2008
19 janv. 2007 à 18:15
Désolé lors du premier envoi,
la page m'avait retournée une erreur, je ne pensais pas que le message avait été posté.
0
tibblou Messages postés 10 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 26 avril 2008
20 janv. 2007 à 22:17
Personne pour m'aider ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tibblou Messages postés 10 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 26 avril 2008
22 janv. 2007 à 17:44
Salut Gwendal,

Merci de m'avoir répondu !
Le problème est résolu, j'ai crée une DataRelation, et deux BindingSources !!!
L'affichage s'effectue dans les listbox, et cette fois-ci il est cohérent ^^

@ Bientôt et encore merci 
0
wacssine Messages postés 59 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 1 décembre 2013
26 févr. 2008 à 17:46
Bonjour,
tu peus nos ecrire ton nouveaus code si possible ?
0
Rejoignez-nous