curieuse_asp
Bonjour,
Voici la situation:
j'ai crée une table TERME qui contient des termes choisis par un documentaliste.
Le structure de cette table est la suivante :
ID_TERME, Lib_TERME( libellé du terme), EM( numéro de synonyme qui est également un terme), NA( chaine de caractères), DATE.
J'ai crée une table GENERIQUES qui contient les termes de la table TERME avec leur terme(s) générique(s) (générique signifie qui se situe à un niveau hiérarchique supérieur dans une arborescence)
La structure de la table générique est la suivante :
ID_TG( n° incrémenté), ID_TERME_SOURCE ( qui est le numéro du terme dans la table TERME qui possède un terme générique), ID_TERME_GENERIQUE qui est le numéro du terme générique qui est lui même un terme de la table TERME..
Dans la table GENERIQUES il existe des termes qui n'ont pas de terme générique parce que ce sont des termes RACINE et les concernant, la valeur du champ ID_TERME_GENERIQUE = 0
J'aimerais crée un treeview qui montre :
-toutes les racines
-tous les termes qui ont les racines pour terme générique, c'est à dire pour lesquels les racines sont situées à un niveau hiérarchique supérieur.
exemple:
agriculture(terme racine)
agriculturebiodynamique(terme qui a pour terme générique la racine 'agriculture'
J'ai crée deux Data Adapter qui servent à la communication entre un data set et la source de données (sql serveur).
J'ai crée un dataset objDS rempli du contenu du résultat de deux sélections par le biais de deux requêtes sql.
Il se trouve que le deuxième dataadapter da2 remplit le dataset objDS du contenu d'une table GENERIQUES qui est une table enfant de la première table "RACINES".
J'ai donc besoin de créer une DATARELATION mais le code implémenté ne fonctionne pas bien.
En fait , les deux requêtes sql se font sur les mêmes tables 'TERME' et 'GENERIQUES' etje ne sais pas comment déterminer la clé primaire et la clé etrangère pour créer la datarelation.
voici le code implémenté:
[code]
Imports System.Data
Imports
System.Data.SqlClient
Imports
Microsoft.Web.UI.WebControls
Public
Class TreeView1
Inherits System.Web.UI.Page
Protected WithEvents TreeView1 As Microsoft.Web.UI.WebControls.TreeView
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sConnString As String = "Data Source = localhost ; Initial Catalog =THESAURUS ; User Id =""; Password=""; integrated security = SSPI"
Dim objConn As New SqlConnection(sConnString)
objConn.Open()
Dim objDS As New DataSet()
Dim dt1 As DataTable
Dim dt2 As DataTable
Dim i As Integer
'creation d'un Adapter qui se charge des communications entre le Dataset et la source de données
Dim da1 As New SqlDataAdapter("SELECT Lib_TERME from TERME WHERE ID_TERME IN (SELECT ID_TERME_SOURCE_G from GENERIQUES WHERE ID_TERME_GENERIQUE = 0)", objConn)
da1.Fill(objDS, "RACINES")
dt1 = objDS.Tables("RACINES")
'autre DataAdapter qui va prendre les enfants de dette racine
Dim da2 As New SqlDataAdapter("SELECT Lib_TERME from TERME WHERE ID_TERME IN (SELECT ID_TERME_SOURCE_G from GENERIQUES WHERE ID_TERME_GENERIQUE = ID_TERME)", objConn)
'je fais un fill avec un nom de table enfant
da2.Fill(objDS, "GENERIQUES")
dt2 = objDS.Tables("GENERIQUES")
For i = 1 To dt1.Columns.Count
If dt1.Columns(0).ColumnName = dt2.Columns(i).ColumnName Then
Dim RACINES_GENERIQUES1 As New DataRelation(dt2.TableName & "_" & dt1.TableName, dt2.Columns(0), dt1.Columns(i))-> c'est ici que cela pose problème!!
objDS.Relations.Add(RACINES_GENERIQUES1)
End If
Next
' objDS.Tables("RACINES").Columns("ID_TERME_SOURCE_G"), objDS.Tables("GENERIQUES").Columns("ID_TERME"))
objConn.Close()
'création des types de données du tree view
Dim nodeTERME As TreeNode
Dim rowTERME As DataRow
For Each rowTERME In objDS.Tables(0).Rows
nodeTERME =
New TreeNode()
nodeTERME.Text = rowTERME("Lib_TERME")
TreeView1.Nodes.Add(nodeTERME)
Next
End Sub
End
Class
[/code]
Merci beaucoup de votre aide par avance.
Bien cordialement.