sábado, 15 de mayo de 2010

Acceder a una bd Access

Vamos a acceder a una base de datos de access y el pekeño ejemplo abarca la insercion, eliminacion y show de datos, esto con solo dos campitos, ID y Nombre en una tabla llamada "tabla1".

codigo:
using System;
using System.Data.OleDb;
using System.Data;
using System.Windows.Forms;

namespace example_bd
{
public partial class Form1 : Form
{ //Se declara un string que indica el provedor, el path y la protección del acceso al origen de datos.
string namedb = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Example.accdb;Persist Security Info=False";
string SentTbTabla = "SELECT * FROM Tabla1 ORDER BY ID";//query
OleDbConnection conexion;//se declara la conexion que utilizaremos
OleDbDataAdapter daComplemnt;//se declara un adaptador de datos
OleDbCommandBuilder creation;//se declara un commanbuilder para agregar comportamientos como insertar,eliminar actualizar etc, al dataAdapter.
DataTable dtTabla1;//se declara una tabla
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//conexion con la bd access
conexion= new OleDbConnection(namedb);
//se crea el adaptador
daComplemnt = new OleDbDataAdapter(SentTbTabla, conexion);
//se crea el commandbuilder para asignar los comandos update,delete,insert al dataAdapter
creation = new OleDbCommandBuilder(daComplemnt);
//se crean las tablas
dtTabla1 = new DataTable();
//se le agregan los siguientes comportamientos al dataAdapter, aunque se supone que se realiza automaticamente luego surgen problemas internos y no lo hace..:]
daComplemnt.UpdateCommand = creation.GetUpdateCommand();
daComplemnt.DeleteCommand = creation.GetDeleteCommand();
daComplemnt.Fill(dtTabla1 );

}
private void btnMostrar_Click(object sender, EventArgs e)
{
if(txtID.Text !="")//valida que no este vacio el textbox.
{
//se realiza la extraccion de los campos de la bd
DataRow[] foundRows;
//busca la columna que tenga un determinado ID dado por el usuario en el txtID
foundRows = dtTabla1.Select("ID=" + "'" + txtID .Text + "'");
//se muestra en txtName el valor del nombre con el ID dado por el usuario
txtName.Text = foundRows[0].ItemArray[1] + "";
}
}
private void btnDelate_Click(object sender, EventArgs e)
{
DataRow[] foundRows;
//Se busca una fila atravez de un valor de columna ID
foundRows = dtTabla1.Select("ID=" + "'" + txtID.Text + "'");
//se elimina
foundRows[0].Delete();
//se realiza la actualizacion a la bd
daComplemnt.Update(dtTabla1);
//aceptar cambios para que surta efecto directo en la bd
dtTabla1.AcceptChanges();
MessageBox.Show("hecho");
txtID.Text = "";
txtName.Text = "";
}
private void btnInsertar_Click(object sender, EventArgs e)
{
//se crea una nueva DataRow
DataRow drComplemnt = dtTabla1.NewRow();
//se agregan en cada campito los valores de los textbox
drComplemnt["ID"] = txtID.Text;
drComplemnt["Nombre"] = txtName.Text;
//se agrega a la tabla la columna llenada anteriormente
dtTabla1.Rows.Add(drComplemnt);
//update a la bd
daComplemnt.Update(dtTabla1);
// aceptar cambios para que surta efecto directo en la bd
dtTabla1.AcceptChanges();
MessageBox.Show("hecho");
txtID.Text = "";
txtName.Text = "";
}
}
}

descargate el proyecto con la bd de ejemplo:
http://www.megaupload.com/?d=14QIN1KS

No hay comentarios:

Publicar un comentario

CoMeNtArIoS y MaS...