|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Trouver les foreign key dans un dataset [ Archives Visual Basic / Bases de données ] (mot_mot)
Informations & options pour cette discussion
mardi 20 septembre 2005 à 10:35:58 |
Trouver les foreign key dans un dataset

mot_mot
|
Bonjour,
je débute en vb.net, et je n'arrive pas à trouver les clés étrangères dans une dataset!
Tout d'abord je récupère le schéma de ma base access
Dim oSchemaTable As DataTable
classConn.ouvrirConnexion()
oSchemaTable = classConn.getConnexion.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
classConn.fermerConnexion()
Ensuite je rempli mon dataset avec un dataAdapter
Dim oTable As DataTable = getMaTable()
Try
For Each oMaLigne In oTable.Rows
classConn.setStrNomTable(CType(oMaLigne.Item("TABLE_NAME"), String))
classConn.setDataAdapter(New OleDbDataAdapter("Select * From [" & classConn.getStrNomTable & "]", classConn.getConnexion))
classConn.getDataAdapter.FillSchema(oMonDataSet, SchemaType.Mapped,
classConn.getStrNomTable)
classConn.getDataAdapter.Dispose()
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
J'arrive ensuite à retrouver les clés pimaires!
Mais rien à faire j'ais du mal à comprendre comme faire pour chercher
et trouver les clés étrangères!
Merci d'avance
|
|
|
mardi 20 septembre 2005 à 11:53:24 |
Re : Trouver les foreign key dans un dataset

69chris
|
Salut,
Les clés étrangères sont des relations entre tes tables.
Ces relations sont conservées au niveau du DataSet dans la propriété Relations de type DataRelationCollection.
Chris
N'oubliez pas de cloturer votre post.
|
|
|
mardi 20 septembre 2005 à 15:19:56 |
Re : Trouver les foreign key dans un dataset

mot_mot
|
Merci, mais lorsque par exemple j'affiche le nombre de relations
contenus dans ma collection de relations, j'obtient un beau "0". Est-ce
normal avec le code ci-dessus ne n'obtenir aucune relations dans une
bases qui en est chargée?
oMonDataSet.Relations.Count me donne "0"
Au secour!
|
|
|
mardi 20 septembre 2005 à 15:20:05 |
Re : Trouver les foreign key dans un dataset

mot_mot
|
Merci, mais lorsque par exemple j'affiche le nombre de relations
contenus dans ma collection de relations, j'obtient un beau "0". Est-ce
normal avec le code ci-dessus ne n'obtenir aucune relations dans une
bases qui en est chargée?
oMonDataSet.Relations.Count me donne "0"
Au secour!
|
|
|
mardi 20 septembre 2005 à 19:56:51 |
Re : Trouver les foreign key dans un dataset

69chris
|
Vu le code, je pense qu'elles (les clés étrangères) ne sont pas chargées.
Comment les connaitre/deviner à partir d'une requête select sur une
table? Le GetSchemaTable donne la structure de la table. Mais
donne-t-elle aussi les clés étrangères?
Chris
N'oubliez pas de cloturer votre post.
|
|
|
mercredi 21 septembre 2005 à 14:16:33 |
Re : Trouver les foreign key dans un dataset

mot_mot
|
Donc si je comprend ce que tu me dis! avec cette requête je
n'arriverais pas à obtenir les relations qui existent dans ma base.
Ensuite en récupérant le schema de ma base, je n'obtient que la
structure de mes tables et pas les relations qui existent entre
certaines tables de ma base.
Mais est-ce que tu peux m'aider à y voir plus claire! Comme je l'ais
dis je suis débutant et je sais vraiment pas comment m'y prendre!
Je veux être en mesure de pouvoir récupérer mes tables avec ou sans données et aussi les relations qui existent!
merci!
|
|
|
mercredi 21 septembre 2005 à 15:00:00 |
Re : Trouver les foreign key dans un dataset

69chris
|
Et bien, pourt savoir ce qu'il y a en retour de GetSchemaTable, utilise la méthode WriteXml du DataSet. Modifie ton code vers :
Dim oSchemaTable As DataTable
Dim oDST As DataSet = new DataSet()
classConn.ouvrirConnexion() oSchemaTable = classConn.getConnexion.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"}) classConn.fermerConnexion()
oDST.Tables.Add(oSchemaTable)
oDST.WriteXML("c:\schema.xml")
Ensuite, regarde le
résultat, si tu ne comprend pas ce qu'il y a dedans, copie/colle ce
resultat ici ou en message privé. Je regarderais.
Chris
N'oubliez pas de cloturer votre post.
|
|
|
mercredi 21 septembre 2005 à 15:47:10 |
Re : Trouver les foreign key dans un dataset

mot_mot
|
Merci mais je crois que je me suis mal exprimé! Ce schema je l'obtiens déjà!
En faite ce que je cherche à obtenir c'est le schema détaillé de ma base de données (sans les données des tables).
Ce schema devra contenir toutes mes tables avec leurs champs. Mais
aussi les clés primaires et surtout les clés étrangères! car
c'est pour l'instant elles que je cherche à trouver à partir de
DataSet.Relations.
Mais d'après ce que tu m'as dis, mon code ne peux me charger les
relations de la bases de données, d'une part à cause du code sql et
d'autre part parce que je charge le schema de cette base!
Donc, est-ce que tu peux m'expliquer comment obtenir les relations qui
lient certaines tables d'une base de données en utilisant le mode
déconnecté.
Merci, thomas
|
|
|
mercredi 21 septembre 2005 à 16:43:36 |
Re : Trouver les foreign key dans un dataset

69chris
|
Je reprend dans l'ordre :
Mon dernier post était là pour vérifier ce que je disais. Car si
le schéma obtenu par la méthode GetSchemaTable donne les relations, pas
besoin de se casser la tête. C'est pour ça que je t'ai demandé de faire
une sauvegarde du résultat sous forme XML.
'----------
Je suis désolé de ne pas pouvoir faire le test, mais j'ai pas Access
sur mon poste donc pour faire des tests simples, c'est pas évidant.
----------'
Ensuite, si la méthode GetSchemaTable ne donne rien, il faut allé
chercher le descriptif de la base dans les tables systèmes et c'est
propre à chaque SGBD. Je sais comment faire avec SQL Server mais c'est
tout.
Pour finir, le schéma de ta base est fixe? si c'est le cas, pourquoi ne pas le coder dans un fichier XML?
Chris
N'oubliez pas de cloturer votre post.
|
|
|
jeudi 22 septembre 2005 à 11:26:32 |
Re : Trouver les foreign key dans un dataset

mot_mot
|
Réponse acceptée !
merci pour ton aide! mais je crois que j'ais trouvé la solution! en faite il suffit de reparcourir ma base de données et pour récupérer cette fois le schema relationnel avec: GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, New Object() {Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}) on obtiennt donc le xml suivant: <?xml version="1.0" standalone="yes" ?> <PK_TABLE_NAME>Patron</PK_TABLE_NAME> <PK_COLUMN_NAME>NomPatron</PK_COLUMN_NAME> <FK_TABLE_NAME>Vendeur</FK_TABLE_NAME> <FK_COLUMN_NAME>nomVendeur</FK_COLUMN_NAME> <UPDATE_RULE>NO ACTION</UPDATE_RULE> <DELETE_RULE>NO ACTION</DELETE_RULE> <PK_NAME>PrimaryKey</PK_NAME> <FK_NAME>PatronVendeur</FK_NAME> </Foreign_Keys> </dataset1>
|
|
|
Cette discussion est classé dans : trouver, dataset, nothing, clés, classconn
Répondre à ce message
Sujets en rapport avec ce message
Défi trouver l'algo keygen [ par Redman31100 ]
Bonjour, alors je demande pas d'aide, je vous défi de trouver l'ago(très simple et facile) de mon keygen.Je vous donne 5 clés générés par mon keygen.
Gestion dataset en VB [ par ttornade ]
Bonjour à tous,je voudrais implémenter une fonctionalité de recherche particulière dans une base SQL server. Ma stratégie est celle de charger le plus
CONNECTION SUR BASE ORACLE AVEC DATASET [ par inforedaster ]
Bonjour, je viens de finir un mini projet de gestion hôtelière avec VB.NET mais on utilisant la DATA READER que je me trouve comme un handicape pour b
Trouver chemin ldap d'un poste AD [ par remifalcon ]
Bonjour à tousQuestion toute bête, je cherche à trouver le chemin ldap des machines de modomaineJ'arrive à trouve que le nom de la machine avec l'attr
XSD --> XML [ par jmoronvalle ]
Bonjour a tousje dois, a aprtir d'un XSD et de data, remplir un XMLle XSD en question:<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" x
Ordonner un DataSet grâce à un DataGrid [ par Papymuzo ]
Bonjour à tous (et à toutes ^^), Je vous explique l'état des lieux : je remplis un DataGridView grâce à un DataSet. Maintenant, voilà mon problème :
conserver le dataset lorsqu'on déplace la base de données [ par jfuck ]
Bonjour à tous,Voilà, j'ai fait une petite appli qui repose sur une BD et j'ai utilisé pour cela des dataset et des tableadapters. Je dois maintenant
DataAdapter/ Dataset problem .... [ par Bal1n ]
Bien le bonsoir ^^ Donc que je vous explique mon problème.J'effectue une requête tout ce qu'il y a de plus classique :Dim cs As String cs = "Data Sour
[VB Express 05] Lire et récupéré info d'un XML. [ par seltsam ]
Bonjour !J'ai un XML XML : xml version="1.0" encoding="utf-8" ?><a class="b" style="VISIBILITY: hidden"
Où trouver l'outil winsock_control.winsock [ par lagarce ]
Rebonjour à tout le monde,Voilà je cherche l'outil winsock_control.winsock afin de créer une appli serveur/clientJ'ai essayer le clic droit dans la bo
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|