Rellenar un combo con las columnas de una tabla MySql

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());
         }
      }
   }
}
Quizá te interese...
Deja un comentario...
Suscribirme
Notificación de
guest
0 Comentarios
Comentarios en línea
Ver todos los comentarios