Llenar un TreeView con las bases de datos de MySql en C#
El control TreeView se utiliza para mostrar datos jerárquicos, como una tabla de contenido o de archivos del directorio, en una estructura de árbol.
El control TreeView se compone de nodos. Cada entrada en el árbol se denomina nodo y está representado por un objeto TreeNode. Los tipos de nodos son empleados de la siguiente manera:
-
Un nodo del que se derivan otros nodos se le llama nodo primario.
-
Un nodo que se deriva de un nodo primario se le llama nodo secundario.
-
Un nodo que no tiene hijos se denomina nodo hoja.
-
El nodo que no se deriva de ningún otro nodo pero de el se derivan nodos es llamado nodo raíz.
A pesar de que una estructura de árbol típico sólo tiene un nodo raíz, el control TreeView permite agregar varios nodos raíz a la estructura de árbol. Esto es útil cuando desea mostrar listas de artículos sin mostrar un nodo raíz único, como en una lista de categorías de productos.
Cada nodo tiene una propiedad Text y una propiedad Value. El valor de la propiedad Text se muestra en el TreeView, mientras que la propiedad Value se utiliza para almacenar cualquier dato adicional sobre el nodo, como los datos que se pasa al evento de devolución de datos que está asociado con el nodo.
Llenar un TreeView con las bases de datos de MySql.
Para esto es necesario utilizar un driver que permita interactuar C# con MySql la información necesaria para conectar MySql y C# la podrás ver en el siguiente Post: http://www.ubicuos.com/?p=1764
La siguiente clase cuenta con 3 metodos (conectar(), muestraDB() y muestraTablas(string tabla)) necesarios para obtener los datos para llenar el TreeView.
class Consultas { public MySqlConnection cn = new MySqlConnection(); public Boolean conectar() { try { if (cn.State == ConnectionState.Closed) { cn.ConnectionString = "DataBase='';DataSource=localhost;Port=3306;User=root;Password=carlos"; cn.Open(); } } catch (Exception) { Console.WriteLine("Error al conectar con la base de datos"); return false; } return true; } public ArrayList muestraDB() { ArrayList listaBD = new ArrayList(); if (conectar()) { MySqlCommand cmd = new MySqlCommand("SHOW DATABASES", cn); MySqlDataReader drTable = cmd.ExecuteReader(); while (drTable.Read()) { listaBD.Add(drTable[0].ToString()); } drTable.Close(); cn.Close(); } return listaBD; } public ArrayList muestraTablas(string baseDatos) { ArrayList listaTablas = new ArrayList(); if (conectar()) { MySqlCommand cmd = new MySqlCommand("SHOW TABLES FROM " + baseDatos, cn); MySqlDataReader drTable = cmd.ExecuteReader(); while (drTable.Read()) { listaTablas.Add(drTable[0].ToString()); } drTable.Close(); cn.Close(); } return listaTablas; } }
En el boton ponemos el siguiete codigo
Consultas tablas = new Consultas(); ImageList iconos = new ImageList(); iconos.Images.Add(new Icon("database.ico")); iconos.Images.Add(new Icon("tabla.ico")); trvBaseDatos.ImageList = iconos; foreach (string baseDatos in tablas.muestraDB()) { TreeNode bases = trvBaseDatos.Nodes.Add(baseDatos); bases.ImageIndex = 0; foreach (string tabla in tablas.muestraTablas(baseDatos)) { TreeNode table = bases.Nodes.Add(tabla); table.ImageIndex = 1; } }
El resultado de la aplicación sera el siguiente:
Espero y les sea de ayuda, dudas o sugerencias son bienvenidas, Saludos…
Quizá te interese :
Leer archivos XML desde C# XML, siglas en inglés de Extensible Markup Language (lenguaje extens ...
Obtener el Diccionario de datos de una Tabla de MySql con C# INFORMATION_SCHEMA MySql guarda l ...
Tenemos un archivo XML con la siguiente estructura en la cual cada nodo <item> representa ...











hola me podrias pasar el codigo de este mismo ejemplo pero en vb, gracias y saludos.