Sei sulla pagina 1di 4

05DEC

Posted by pecesama as VB.Net Imprimir este post

Este post va dirigido principalmente a mis alumnos de Ingeniera en Software, pero puede ser til a varios ms. Primero que nada, eso de MS Access se que no va ya con mi filosofa de herramientas a utilizar, pero muchas veces es necesario ya sea porque es la nica herramienta que se conoce o bien es un requisito del cliente/maestro (esto ltimo no es mi caso ). Para realizar la conexin y las transacciones con la base de datos voy a utilizar una librera que se puede descargar conexionOleDb.dll y tambin la base de datos. El motivo de utilizar esta librera es para agilizar las cosas y obviar detalles bsicos de una conexin a BD (adaptador, conector, datatables, etc.) La librera cuenta con los siguientes mtodos y atributos:

El primer paso es crear nuestro proyecto y agregar la referencia a la librera, esta referencia se agrega desde el "Explorador de Soluciones". Una vez agregada la referencia podemos comenzar a programar. Desde el editor de cdigo le indicamos que vamos a utilizar nuestra librera: vb.net [Show Plain Code]:

1. Imports net.pecesama.db.OleDb
Nuestra clase UI va a necesitar de dos propiedades, una para tener el objeto de conexin y otra para tener el resultado de las consultas a la BD: vb.net [Show Plain Code]:

1. Dim con As conexionOleDb 2. Dim dt As DataTable


A nuestra UI vamos a agregarle los siguientes elementos:

El DataGridView se llama Data y deben asignar el siguiente valor en sus propiedades SelectionMode = FullRowSelect Los TextBoxes se llaman txtUsuario, txtPass, txtNombre respectivamente. El DataGidView lo vamos a utilizar SOLO para ver la informacin, no lo usaremos en su modo de edicin, esto para ver como hacer la edicin desde lenguaje SQL. En el evento Form1_Load vamos a agregar el siguiente cdigo: vb.net [Show Plain Code]:

1. Dim rutaBD As String = Application.StartupPath + "\bd.mdb" 2. con = New conexionOleDb(rutaBD) 3. If con.conectar Then 4. dt = con.ejecutaSql("SELECT * FROM usuarios") 5. data.DataSource = dt
6. Else

7. 8.

MessageBox.Show("No se pudo conectar a la BD" + vbCrLf + vbCrLf + con.error, "Error al conectar", MessageBoxButtons.OK, MessageBoxIcon.Error) End If

Para probar la edicin de registros, vamos a agregarle un evento click a nuestro DataGridView, y en este evento (data_Click) ponemos el siguiente cdigo: vb.net [Show Plain Code]:

1. txtUsuario.Text = data.SelectedCells(1).Value 2. txtPass.Text = data.SelectedCells(2).Value 3. txtNombre.Text = data.SelectedCells(3).Value


No hay mucho que explicar en el cdigo anterior, solo que las cajas de texto se llenan con la informacin del rengln seleccionado en el DataGridView. A nuestro botn editar le ponemos en el evento btnEditar_Click el siguiente cdigo para actualizar la BD. vb.net [Show Plain Code]:

1. Dim sqlStr As String aqui pondremos la consulta


2. SQL para editar registros 3. sqlStr = "UPDATE usuarios SET usuario=" + txtUsuario.Text + ", pass=" + txtPass.Text + ", nombre=" + txtNombre.Text + " WHERE id_usuario=" + data.SelectedCells(0).Value.ToString() 4. con.ejecutaSql(sqlStr) ejecutamos la consulta directamente en la BD 5. refrescamos el DataGridView y las cajas de texto 6. dt = con.ejecutaSql("SELECT * FROM usuarios") 7. data.DataSource = dt 8. txtUsuario.Text = "" 9. txtPass.Text = "" 10. txtNombre.Text = "" Por ltimo a nuestro botn salir en el evento btnSalir_Click le agregamos: vb.net [Show Plain Code]:

1. con.cerrarConexion() 2. Application.Exit()
Con esto terminamos el ejemplo de como conectarnos a una base de datos en Access, como leer los datos, como editarlos y como cerrar la conexin. Queda como ejercicio para ustedes la insercin de registros. Actualizacin: Les pongo el cdigo para insertar y eliminar en el ejemplo. Agregue dos nuevos botones en el formulario, btnAgregar y btnEliminar. A nuestro botn editar le ponemos en el evento btnAgregar_Click el siguiente cdigo para insertar registros. vb.net [Show Plain Code]:

1. Dim sqlStr As String 2. sqlStr = "INSERT INTO usuarios (usuario, pass, nombre) VALUES (" + 3. 4. 5. 6. 7. 8.
txtUsuario.Text + ", " + txtPass.Text + ", " + txtNombre.Text +");" con.ejecutaSql(sqlStr) dt = con.ejecutaSql("SELECT * FROM usuarios") data.DataSource = dt txtUsuario.Text = "" txtPass.Text = "" txtNombre.Text = ""

A nuestro botn editar le ponemos en el evento btnEliminar_Click el siguiente cdigo para eliminar registros. vb.net [Show Plain Code]:

1. Dim sqlStr As String 2. sqlStr = "DELETE FROM usuarios WHERE id_usuario=" + 3. con.ejecutaSql(sqlStr) 4. dt = con.ejecutaSql("SELECT * FROM usuarios")
data.SelectedCells(0).Value.ToString()

5. 6. 7. 8.

data.DataSource = dt txtUsuario.Text = "" txtPass.Text = "" txtNombre.Text = ""

Este cdigo se puede mejorar cambiando la declaracin de Dim sqlStr As Stringal inicio de la clase del formulario, y crear un mtodo para el cdigo de refrescar el DataGridView y los TextBoxes.

Potrebbero piacerti anche