Bonjour à tous !
Je voudrais connecté un treeview à une base de données.
En fait, j'ai deux tables: login et connected
login contient tous les utilisateurs
connected contient les utilisateurs connectés
Le treeview contient deux noeus "connectés" et "déconnectés" et je voudrais remplir chacun de ses noeuds en mettant les utilsateurs connectés sous le noeud "connectés" et les utilisateurs déconnectés sous le noeuds "déconnectés".
Constatant que je pouvais pas à priori lié directement mes tables à mon treeview, j'ai fait la fonction suivante qui récupère de mes bases deux tableaux: le tableau contenant les utilisateurs connectés et le tableau contenant les utilisateurs déconnectés.
Jusque là, ça va mais je me pose plusieurs questions:
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public void Load_People() { //Sélection de tous les utilisateurs //La connexion BD bd1 = new BD(); OdbcConnection con1 = bd1.Connect(); //Initialisation dataset 1 et dataAdapter 1 (récupération de tous les users) DataSet oDataSet1 = new DataSet("AllUsers"); OdbcDataAdapter oDataAdapter1 = new OdbcDataAdapter("SELECT LOGIN FROM login",con1); oDataAdapter1.Fill(oDataSet1, "AllUsers"); //Initialisation dataset 2 et dataAdapter 2 (récupération users connectés) DataSet oDataSet2 = new DataSet("ConnectedUsers"); OdbcDataAdapter oDataAdapter2 = new OdbcDataAdapter("SELECT LOGIN FROM connected", con1); oDataAdapter2.Fill(oDataSet2, "ConnectedUsers"); //Arraylist Connected contient les connectés //Arraylist Disconnected contient les non connectés ArrayList Connected = new ArrayList(); ArrayList Disconnected = new ArrayList(); //on remplit les deux arraylist en fonctions des données de la table for (int i = 0; i < oDataSet1.Tables["AllUsers"].Rows.Count; i++) { Connected.Add(oDataSet1.Tables["AllUsers"].Rows[i][0].ToString()); for (int j = 0; j < oDataSet2.Tables["ConnectedUsers"].Rows.Count; j++) { if (oDataSet2.Tables["ConnectedUsers"].Rows[j][0].ToString() == oDataSet1.Tables["AllUsers"].Rows[i][0].ToString()) { Connected.Remove(oDataSet1.Tables["AllUsers"].Rows[i][0].ToString()); Disconnected.Add(oDataSet1.Tables["AllUsers"].Rows[i][0].ToString()); } } } //Conversion des arraylist en string[]; string[] conn = (string[])Connected.ToArray(typeof(string)); string[] disconn = (string[])Disconnected.ToArray(typeof(string)); for (int i = 0; i < conn.Length; i++) { Response.Write("Connected: " + conn[i]+"<BR>"); } for (int i = 0; i < disconn.Length; i++) { Response.Write("Disconnected: " + disconn[i] + "<BR>"); }
1. Est-ce que c'est le meilleur moyen, n'y a t'il pas un moyen plus rapide pour faire cela.
2. J'ai vu qu'on pouvait lié un treview à un fichier xml. Dans ce cas, comment créé un fichier xml (ou updaté) à partir des deux tableaux ou mieux (si c'est possible) à partir de mes deux datasets.
Merci beaucoup pour vos réponses !!
Partager