Hoy te mostramos como realizar una sencilla conexion accesss c# para mostrar información de una base de datos en cualquier aplicación que desarrolles. Para esto haremos uso de Visual Studio 2013, el modelo de objetos ADO.NET y C#, realizaremos un sencillo ejemplo que te muestra como realizar esta conexion con una base de datos access desde c# y realizar operaciones básicas como agregar, actualizar, eliminar y buscar sobre la base de datos a través de la interfaz de nuestra sencilla aplicación.
Lo primero sera crearnos una nueva aplicación en Visual Studio 2013 ( cualquier versión vale ) y desarrollar una interfaz como la siguiente,
teniendo en cuenta que tenemos una base de datos access como la siguiente,
Nuestra base de datos se llama Agenda y nuestra tabla se llama Contactos, consta de los campos que ves en la imagen anterior.

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.
UdemyAhora para realizar la conexion access c# deberemos agregar el objeto OleDbDataAdapter y OleDbConnection en nuestra aplicación para el control de la base de datos.
Para agregar dicho adaptador simplemente vamos a Herramientas -> Elegir elementos del cuadro de herramientas -> Componentes de .NET Framework y elegimos OleDbDataAdapter y OleDbConnection.
Ahora solo los agregamos desde el cuadro de herramientas hasta nuestra interfaz, inmediatamente después de agregar el objeto OleDbDataAdapter nos aparecerá un asistente de conexión.
donde seleccionaremos Nueva Conexion, y cambiaremos el Origen de Datos a Archivo de Base de datos de Microsoft Access.
Después seleccionamos el archivo de base de datos de access para que nuestro asistente quede de la siguiente forma,
probamos nuestra conexión y terminamos con el objeto OleDbDataAdapter.
Ahora configuramos el objeto OleDbConnection en el cual simplemente nos vamos a su propiedad ConnectionString y seleccionamos el nombre de nuestra base de datos.
Pasamos al código y en nuestro constructor agregamos un método para leer al inicio el primer registro de nuestra base de datos,
public Form1() { InitializeComponent(); actual = getFirstId(); showData(); }
donde el codigo de getFirstId() es,
this.oleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM Contactos"; this.oleDbConnection1.Open(); this.oleDbDataAdapter1.SelectCommand.Connection = oleDbConnection1; OleDbDataReader reader = this.oleDbDataAdapter1.SelectCommand.ExecuteReader(); reader.Read(); int id = Convert.ToInt16(reader["Id"].ToString()); this.oleDbConnection1.Close(); return id;
y el codigo del metodo showData es como sigue,
this.oleDbDataAdapter1.SelectCommand.CommandText = query; this.oleDbConnection1.Open(); this.oleDbDataAdapter1.SelectCommand.Connection = oleDbConnection1; OleDbDataReader reader = this.oleDbDataAdapter1.SelectCommand.ExecuteReader(); while(reader.Read()){ textBox1.Text = reader["Nombre"].ToString(); textBox2.Text = reader["Direccion"].ToString(); textBox3.Text = reader["Telefono"].ToString(); textBox4.Text = reader["Nota"].ToString(); } this.oleDbConnection1.Close();
donde la variable query corresponde a la instrucción select para obtener el primer registro, (aqui pudimos haberlo hecho de otra forma pero para fines didácticos lo haremos así)
CODIGO DEL BOTON AGREGAR REGISTRO
try { this.oleDbDataAdapter1.InsertCommand.CommandText = query; this.oleDbConnection1.Open(); this.oleDbDataAdapter1.InsertCommand.Connection = oleDbConnection1; this.oleDbDataAdapter1.InsertCommand.ExecuteNonQuery(); this.oleDbConnection1.Close(); MessageBox.Show("Registro agregado exitosamente"); this.textBox1.Text = ""; this.textBox2.Text = ""; this.textBox3.Text = ""; this.textBox4.Text = ""; actual = getFirstId(); showData(); } catch (System.Data.OleDb.OleDbException exp) { this.oleDbConnection1.Close(); MessageBox.Show(exp.ToString()); }
donde la variable query contiene la cadena de texto con la instrucción insert.
CODIGO DEL BOTON ACTUALIZAR REGISTRO
try { this.oleDbDataAdapter1.UpdateCommand.CommandText = query; this.oleDbConnection1.Open(); this.oleDbDataAdapter1.UpdateCommand.Connection = oleDbConnection1; this.oleDbDataAdapter1.UpdateCommand.ExecuteNonQuery(); this.oleDbConnection1.Close(); MessageBox.Show("Registro actualizado correctamente."); this.textBox1.Text = ""; this.textBox2.Text = ""; this.textBox3.Text = ""; this.textBox4.Text = ""; actual = getFirstId(); showData(); } catch (System.Data.OleDb.OleDbException exp) { this.oleDbConnection1.Close(); MessageBox.Show(exp.ToString()); }
CODIGO DEL BOTON BORRAR REGISTRO
try { this.oleDbDataAdapter1.DeleteCommand.CommandText =query; this.oleDbConnection1.Open(); this.oleDbDataAdapter1.DeleteCommand.Connection = oleDbConnection1; this.oleDbDataAdapter1.DeleteCommand.ExecuteNonQuery(); this.oleDbConnection1.Close(); MessageBox.Show("Registro eliminado correctamente"); this.textBox1.Text = ""; this.textBox2.Text = ""; this.textBox3.Text = ""; this.textBox4.Text = ""; actual = getFirstId(); showData(); } catch (System.Data.OleDb.OleDbException exp) { this.oleDbConnection1.Close(); MessageBox.Show(exp.ToString()); }
Una vez mas el código de la variable query es la instrucción DELETE para eliminar el registro que corresponda a ese Nombre.
CODIGO DEL BOTON BUSCAR REGISTRO
String nombre = textBox1.Text; this.oleDbDataAdapter1.SelectCommand.CommandText = query; this.oleDbConnection1.Open(); this.oleDbDataAdapter1.SelectCommand.Connection = oleDbConnection1; OleDbDataReader reader = this.oleDbDataAdapter1.SelectCommand.ExecuteReader(); while (reader.Read()) { textBox1.Text = reader["Nombre"].ToString(); textBox2.Text = reader["Direccion"].ToString(); textBox3.Text = reader["Telefono"].ToString(); textBox4.Text = reader["Nota"].ToString(); } this.oleDbConnection1.Close();
donde la variable query contiene el código de la instrucción select para obtener el registro donde la caja nombre corresponda a la variable Nombre en nuestro ejemplo.
El resultado final de nuestra conexion access c# es el siguiente,