sábado, 15 de junio de 2013

Conexión de C# con Access, Mediante código




Dentro del proyecto se crea una nueva clase. En este caso la clase se llamará ConexionAccess2007 y se le asignan los siguientes using:

Código:
using System.Data.OleDb;
using System.Data;

Después de esto tendremos que crear todos los métodos que vamos a requerir para la conexión a la base de datos asi como los siguientes elementos:

Código:
static string CadenaConexion;
static OleDbConnection Conex;
static OleDbDataAdapter Adaptador;
static OleDbCommandBuilder Constructor;
static DataTable Tabla;
static BindingSource Fuente;

Creamos el método para conectarnos a la base de datos:

Código:
public static void Conectar()
{
   CadenaConexion = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\DarkVenom\Documents\Compumax.accdb;Persist Security Info=False";
   Conex = new OleDbConnection(CadenaConexion);
   Conex.Open();
}

Donde Source es la ruta donde se encuentra la base de datos de Access.
Ahora un método para desconectarse de la base de datos:

Código:
public static void Desconectar()
{
   Conex.Close();
}

Y por último un método para realizar una consulta a una tabla de esa base de datos:

Código:
public static void Consultar(string tabla, string campos, string orden)
{
   string Consulta = "SELECT " + campos + " FROM " + tabla + " ORDER BY " + orden + ";";
   Adaptador = new OleDbDataAdapter(Consulta, Conex);
   Constructor = new OleDbCommandBuilder(Adaptador);
   Tabla = new DataTable(tabla);
   Adaptador.Fill(Tabla);
   Fuente = new BindingSource();
   Fuente.DataSource = Tabla;
}

Este método lo que hace es recibir como parámetros la tabla a la cual se desea hacer la consulta, los campos que se requieren y el orden en el que se desean mostrar los datos. Con estos parámetros se crea la consulta, la cual es pasada al adaptador que recibe como parámetros una consulta y la conexión con la que se quiere trabajar.
Lo siguiente es crear la propiedad Source para poder guardar los datos de la consulta y usarlos en el Form1.

Código:
public static BindingSource Source
{
get
{
   return Fuente;
}
}

En el Form1 simplemente se agrega un DataGridView para cargar los datos de la consulta en él, y en el evento Load del Form1 se manda a llamar a los métodos de la clase ConexionAccess2007:

Código:
private void FrmConexionAccess2007_Load(object sender, EventArgs e)
{
ConexionAccess2007.Conectar();
ConexionAccess2007.Consultar("producto", "*", "id_producto");
DataGridView.DataSource = ConexionAccess2007.Source;
ConexionAccess2007.Desconectar();
}








No hay comentarios:

Publicar un comentario