Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2009, 18:54
Bernaig
 
Fecha de Ingreso: mayo-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Pregunta Llenar TreeView desde una tabla.

Hola,

Necesito programar una rutina para llenar un TreeView con datos leídos desde una base de datos mysql.
Les muestro el código que utilizo ahora, que aunque funciona ok sólo lo hace para agregar los nodos padre y sus hijos, y ahora necesitaría ver la forma de agregarle más nodos pero que dependan de alguno de los hijos que ya agregué. Lo puedo hacer añadiendo más bucles, pero eso terminaría por ser un lío de for y no sé tampoco de antemano cuantos bucles voy a necesitar luego.

Primero les muestro la tabla destinos, su estructura y un par de datos de ejemplo:

idDestino|destino|depende
1|destino1|0
2|destino2|0
3|destino3|1
4|destino4|3
5|destino5|2

Ahora la parte del código que llena el TreeView:

Código:
sql = "SELECT * FROM Destinos ORDER BY depende,idDestino;";
TreeNode tn = new TreeNode();
da = new MySqlDataAdapter(sql, cnn);
dt = new System.Data.DataTable();

da.Fill(dt);
DataRow drPadre,drHijo;
for (int i = 0; i < dt.Rows.Count; i++)
{
	drPadre = dt.Rows[i];
	if (System.Convert.ToInt16(drPadre["depende"]) == 1) tn = tvDestino.Nodes.Add(drPadre["destino"].ToString());
	for (int j=0;j<dt.Rows.Count;j++)
	{
		drHijo=dt.Rows[j];
		if (System.Convert.ToInt16(drHijo["depende"]) == System.Convert.ToInt16(drPadre["idDestino"])) tn.Nodes.Add(drHijo["destino"].ToString());
	}
}
etc...

Gracias.