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());
}
}
}
}