Llenar un TreeView con las bases de datos de MySql en C#

agosto 6 2010Un comentario

Guardado en : Microsoft, Programación

 

 

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 :

Acerca del autor:

Una respuesta a “Llenar un TreeView con las bases de datos de MySql en C#”

  1. samuel dice:

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

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

¿Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de cómo podemos mejorarlo para ti, ¡Por favor háznoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio útil y amigable y esperamos que disfrutes tu tiempo aquí.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose

-->