You are on page 1of 9

Clase sencilla para agregar, leer, actualizar y eliminar datos en Access, MySQL y

SQLite con Visual Basic .Net

Buen da para todos,


Continuando el tema anterior de las conexiones pasamos a un tema donde varios
usuarios que empiezan en el mundo de la programacin les cuestan comprender y
como todos hemos pasado por esto que mejor forma que devolver a la comunidad
lo que se ha recibido de esta misma.

Por tal motivo quiero compartir una clase creada dentro de un mdulo que nos
facilitara mucho las cosas, la verdad es que la hice lo ms sencilla posible que me
resultara para mis propsitos, cada quien la puede adaptar a sus necesidades
espero les sea de utilidad.
Bueno manos a la obra
Para comenzar ya tengo creado un nuevo proyecto que he llamado
Tutorial_CRUD, el cual contiene un formulario y este a su vez contiene los
siguientes controles:
5 Botones que he nombrado as:
Name: BtnConexion Text: Conexin
Name: BtnLeer Text: Leer
Name: BtnAgregar Text: Agregar
Name: BtnActualizar Text: Actualizar
Name: BtnEliminar Text: Eliminar
3 Cajas de texto que he nombrado as:
Name: TxtId
Name: TxtNombres
Name: TxtApellidos
3 Labels que les asigne los siguientes textos as:
Label1.text = Id
Label2.text= Nombres
Label3.text= Apellidos
1 Datagridview que he nombrado as:
Name: DGTabla
Una vez terminado nuestro formulario debe tener una apariencia como la siguiente

Paso seguido terminada la parte de agregar los controles necesarios para nuestro ejemplo, lo
siguiente que necesitamos es agregar un nuevo mdulo a nuestro proyecto que llamaremos
CRUD, esto lo hacemos dando clic derecho en el explorador de soluciones a nuestro proyecto y
nos ubicamos sobre el men agregar para seleccionar la opcin Modulo tal como se muestra en
la siguiente imagen.

Ahora que hemos creado nuestro modulo CRUD procedemos abrirlo dando doble clic y borramos
todo lo que ahi en el momento que solo es Module CRUD End Module, para proceder a crear
los procedimientos necesarios para realizar las operaciones propuestas en este ejemplo, lo pimero
que debemos hacer es identificar nuestra base de datos que para nuestro ejemplo es Access 2003 y
que he creado en una carpeta en la ruta C:\Tutorial_CRUD y la base la he nombrado
Datos.mdb sin contrasea, nuestra ruta completa es la siguiente
C:\Tutorial_CRUD\Datos.mdb, ahora lo que sigue es ubicar nuestra cadena de conexin en la
siguiente pagina:

https://www.connectionstrings.com/

Paso seguido debemos importar la libreria que nos permita manipular este tipo procedimientos la
cual es System.Data.Oledb, lo hacemos al inicio del modulo de la siguiente forma:
Importamos la libreria Oledb
Imports System.Data.OleDb

Ahora que ya hemos importado correctamente nuestra librera procedemos a declarar la clase que
almacenara nuestros procedimientos, el nombre que le demos a nuestra clase sera el mismo que
usaremos para declararla ms adelante y la declaramos as:

Declaramos nuestra clase de nombre CRUD


Public Class CRUD
End Class
Terminado de declarar nuestra clase procedemos a crear la conexin a nuestra base de datos para
tener acceso a la misma y realizar todos los procedimientos que sean necesario, la conexin la
creamos mediante el objeto OleDbConnection de la librera OleDb al cual le asignamos nuestra
cadena de conexin y lo hacemos de la siguiente forma:

Creamos nuestra conexin a la base de Datos

Dim con As New OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data

Source=C:\Tutorial

El primer procedimiento que vamos a crear ser el que nos realice la prueba de la conexin a la
base de datos y nos muestre si tenemos una conexin exitosa, para realizar este proceso utilizaremos
la instruccin Try y declaramos nuestro nuevo procedimiento que llamaremos conexin de la
siguiente forma:

Sub conexion()
':Instruccion Try para capturar errores
Try
'Abrimos nuestro conexion con la propiedad Open
con.Open()
MsgBox("Conexin realizada de manera exitosa", MsgBoxStyle.Information, "Tutorial CRUD")
'Y cerramos la conexion
con.Close()
Catch ex As Exception
MsgBox("No se logro realizar la conexin debido: " & ex.Message, MsgBoxStyle.Critical, "Tutorial CRUD")
End Try
End Sub
Ahora que ya tenemos nuestra conexin creada y hemos probado que se establece correctamente el
siguiente procedimiento que crearemos sera para realizar consultas a nuestra base de datos, este
procedimiento lo llamaremos consulta y tendr los siguientes objetos:

OleDbDataAdapter: Nos permite crear una conexin entre la solicitud que realiza el usuario a
la base y la respuesta que se obtiene de la base de datos, este objeto tiene la ventaja que no se
necesita abrir primero la conexin a la base de datos debido a que es te objeto abre y cierra
automticamente la conexin una vez termina el proceso. As mismo para que cumpla su
funcin correctamente este objeto necesita que le pasemos dos parmetros muy importantes que
son, el primero la instruccin que debe realizar y el segundo la conexin a la que debe realizar
esa instruccin.

DataTable: Este objeto sera la tabla donde se almacenaran los datos que reciba el
DataAdapter por parte de la base de datos.
Hasta ahora hemos visto los dos objetos que necesitamos para realizar nuestro procedimiento pero
tambin debemos mostrar el resultado en alguna forma y lo haremos mediante un DataGridView
que ya hemos defino anteriormente.

Para que nuestro proceso funcione correctamente debemos darle dos parmetros tambin los cuales
serian, el primero seria el DataGridView donde mostraremos los resultados y el segundo la
instruccin que necesita el DataAdapter, para esto al momento de crear nuestro procedimiento le
indicaremos que debe solicitar mediante la propiedad ByVal estos dos parmetros, tal cual como
se muestra a continuacin:

'Creamos el procedimiento para la consulta y le indicamos que debe pedir 2 parametros


para
'ejecutarse correctamente (Tabla, Sql)
Sub consulta(ByVal Tabla As DataGridView, ByVal Sql As String)
'Instruccion Try para capturar errores
Try
'Creamos el objeto DataAdapter y le pasamos los dos parametros (Instruccion,
conexin)
Dim DA As New OleDbDataAdapter(Sql, con)
'Creamos el objeto DataTable que recibe la informacion del DataAdapter
Dim DT As New DataTable
'Pasamos la informacion del DataAdapter al DataTable mediante la propiedad
Fill
DA.Fill(DT)
'Ahora mostramos los datos en el DataGridView
Tabla.DataSource = DT
Catch ex As Exception
MsgBox("No se logro realizar la consulta por: " & ex.Message,
MsgBoxStyle.Critical,"Tutorial CRUD")
End Try

End Sub

Ahora ya podemos realizar consultas a nuestra base de datos, tambin podemos obtener una
respuesta y ademas mostrar este resultado de manera ordenada.

Continuamos, seguido crearemos un procedimiento que nos permita Agregar, Actualizar y


Eliminar sin tener que crear procedimientos por separado para cada operacin, para esto lo primero
es crear el proceso con el nombre de operaciones el cual va a contener el siguiente objeto:

OleDbCommand: El cual almacenara la instruccin para la operacin que se va a realizar, este


objeto necesita tambin de dos (2) parmetros, el primero la instruccin que debe realizar y el
segundo la conexin a la que debe realizar esa instruccin. A diferencia del objeto anterior
(DataAdapter) el Command necesita que abramos y cerremos la conexin debido a que el no
lo hace automticamente.

o ExecuteNonQuery: Es una propiedad del objeto Command y su funcin es ejecutar la


instruccin que se ha recibido.
Una vez teniendo claro estos conceptos nuestro procedimiento debe quedar as:

:::Creamos el procedimiento para Agregar, Actualizar y Eliminar ademas le indicamos


que debe pedir
':::2 parametros para ejecutarse correctamente (Tabla, Sql)
Sub operaciones(ByVal Tabla As DataGridView, ByVal Sql As String)
':::Abrimos la conexion
con.Open()
':::Instruccion Try para capturar errores
Try
':::Creamos nuestro objeto de tipo Command que almacenara nuestras
instrucciones
':::Necesita 2 parametros (Instruccion, conexion)
Dim cmd As New OleDbCommand(Sql, con)
':::Ejecutamos la instruccion mediante la propiedad ExecuteNonQuery del
command

cmd.ExecuteNonQuery()

Catch ex As Exception
MsgBox("No se logro realizar la operacin por: " & ex.Message,
MsgBoxStyle.Critical, "Tutorial CRUD")
End Try
':::Cerramos la conexion
con.Close()

End Sub

Y con esto hemos terminado la creacin de nuestra clase para las operaciones CRUD, pero todava
no estamos haciendo ninguna operacin recordemos que los procedimientos estn a la espera de
que se les de una instruccin para saber que deben hacer, para esto cerramos nuestro modulo ya
que no lo vamos a utilizar y nos ubicamos en el formulario, comenzaremos con el primer botn que
hemos creado y le dimos el texto Conexin damos doble clic en el botn para configurar.

Seguido lo primero que debemos hacer es crear un objeto que nos comunique con nuestra clase que
para recordar hemos llamado CRUD, este objeto debe ser declarado de manera global para no
tener que estar repitiendo este proceso, esto lo haremos justo debajo de donde se inicia la clase del
formulario.

Una vez creado nuestro objeto solo necesitamos llamar al procedimiento que nombramos
conexion de la siguiente forma:

Public Class Form1


':::Creamos un objeto para establecer conexion con nuestra clase CRUD
Dim Obj As New CRUD

Private Sub BtnConexion_Click(sender As Object, e As EventArgs) Handles


BtnConexion.Click
':::Mediante el objeto que creamos accedemos al procedimiento "conexion"
Obj.conexion()
End Sub

End Class

Ejecutamos nuestro proyecto y damos clic en le botn Conexin y como vemos nos indica que
la conexin fue exitosa.
Como ya probamos nuestra conexin a la base de datos seguimos con el siguiente botn que le
hemos dado como texto Leer y damos doble clic para configurar. Ahora en la configuracin del
botn lo primero que debemos hacer es crear una variable de tipo string que para mayor facilidad
la llamaremos Sql y que sera la encargada de guardar la instruccin que le asignaremos, dicha
instruccin es una consulta SQL a nuestra base de datos que tiene una sola tabla y tres (3) campos.

Base de Datos en Access 2003


Private Sub BtnActualizar_Click(sender As Object, e As EventArgs) Handles
BtnActualizar.Click
':::Creamos la variable Sql que guardar la instruccion de tipo SQL
Dim Sql As String = "Update Clientes Set Nombres='"& TxtNombres.Text &"',
Apellidos='"& TxtApellidos.Text &"' where Id="& TxtId.Text &""
Obj.operaciones(DGTabla, Sql)
End Sub

CODIGO BUSCAR

SELECT CodMateria, Materia, Descripcion


FROM Materia
WHERE (CodMateria = ?)

You might also like