Rellenar un combo con las columnas de una tabla MySql

WebProgramacion > Recursos sobre informática y tecnología > Programacion > C# > Rellenar un combo con las columnas de una tabla MySql
C#
Autor: Dámaso Velázquez Álvarez

En el siguiente ejemplo vamos a ver cómo obtener el nombre de las columnas de una tabla de una base de datos MySql.
Implementaremos un método llamado getColumnas, dentro de una clase llamada Ejemplo, que recibirá el nombre de la tabla. El método devolverá un ArrayList con las columnas de la tabla que usaremos para rellenar el combo.
En el método getColumnas va a obtener un DataSet sin datos, para optimizar su funcionamiento. Para ello se ha incluido en la consulta sql LIMIT 0,0.

El código de la clase Ejemplo será el siguiente:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using MySql.Data.MySqlClient;
using System.Data;

namespace WindowsApplication1
{
   class Ejemplo
   {
      public ArrayList getColumnas(String tabla)
      {
         MySqlConnection conexion = new MySqlConnection("Server=servidor;Database=base_de_datos;Uid=usuario;Pwd=clave");
         MySqlCommand cm = new MySqlCommand("SELECT * FROM " + tabla + " LIMIT 0,0",conexion);
         MySqlDataAdapter adaptador = new MySqlDataAdapter(cm);
         DataSet ds = new DataSet();
         adaptador.Fill(ds);
         ArrayList columnas = new ArrayList();
         for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
         {
            columnas.Add(ds.Tables[0].Columns[i].ColumnName);
         }
         return columnas;
      }
   }
}


El código de la interfaz de usuario será el siguiente:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace WindowsApplication1
{
   public partial class Form1 : Form
   {
      public Form1()
      {
         InitializeComponent();
      }

      private void cmdRellenarCombo_Click(object sender, EventArgs e)
      {
         Ejemplo ejemplo = new Ejemplo();
         ArrayList columnas;
         columnas = ejemplo.getColumnas(txtTabla.Text);
         cmbColumnas.Items.Clear();
         for (int i = 0; i < columnas.Count; i++)
         {
            cmbColumnas.Items.Add(columnas[i].ToString());
         }
      }
   }
}

Podría interesarte...

Rellenar un ListBox con todas las tablas de una base de datos MySQL
Rutina para rellenar un objeto de la clase ListBox con todas las tablas existentes en una base de datos MySQL mediante ...