Está en la página 1de 45

HTTP://LECASABE.

COM 2
CRUD

HTTP://LECASABE.COM 3
CRUD
El concepto CRUD está relacionado a la gestión de
datos digitales en sus cuatro operaciones
fundamentales de aplicaciones persistentes en BD:
 Create (Crear registros – INSERT)
 Read. Retrieve (Leer registros – SELECT)
 Update (Actualizar registros)
 Delete. Destroy (Borrar registros)

HTTP://LECASABE.COM 4
VB.NET + MYSQL
Para poder conectar una base de datos MySQL con
nuestra interfaz gráfica de VB.Net vamos hacer uso del
Open DataBase Connectivity (ODBC).

La estructura del código puede ser optimizada


mediante el uso de módulos o clases para organizar el
programa en 3 capas:

presentación, lógica y datos.

HTTP://LECASABE.COM 5
EJEMPLO
Trabajaremos con un ejemplo que permitirá realizar
alta, baja, modificación, listado y búsqueda de
registros.

Necesitaremos una base de datos con una tabla.

IMPORTANTE: este ejemplo no representa la única


forma de realizar un CRUD.

HTTP://LECASABE.COM 6
BASE
DE DATOS

UTILIZAREMOS
ESTA BD PARA
TODO EL
EJEMPLO.

HTTP://LECASABE.COM 7
CAPA
GRÁFICA
EN VISUAL
STUDIO
CREAREMOS
ESTE
FORMULARIO
PARA
MANIPULAR LOS
REGISTROS.

HTTP://LECASABE.COM 8
CÓDIGO
LÓGICA Y DATOS

Trabajaremos con con un módulo llamado Conexion.vb


donde iremos declarando los métodos para la conexión
y las sentencias SQL.
Dentro de los eventos de los objetos (botones,
formulario, DataGridView, etc.) del Windows Form
vamos a invocar a cada método.

HTTP://LECASABE.COM 9
SYSTEM.DATA.ODBC
Lo primero que debemos de realizar es la importación
del System.Data.Odbc.

El espacio de nombres System.Data.Odbc es el


proveedor de datos .NET Framework para ODBC.

HTTP://LECASABE.COM 10
CLASES
Mediante la importación del System.Data.Odbc
podemos crear objetos de varias clases que
necesitaremos para la gestión de registros:
 OdbcConnection
 OdbcCommand
 OdbcDataAdapter
 DataSet

HTTP://LECASABE.COM 11
CLASES
OdbcConnection Class
Representa una conexión abierta a un origen de datos.

OdbcCommand Class
Representa una instrucción SQL o un procedimiento
almacenado que se van a ejecutar en un origen de
datos. Esta clase no puede heredarse.

HTTP://LECASABE.COM 12
CLASES
OdbcDataAdapter Class
Representa un conjunto de comandos de datos y una
conexión a un origen de datos que se utilizan para
rellenar DataSet y actualizar el origen de datos. Esta
clase no puede heredarse.

DataSet Class
Representa una caché de datos en memoria.

HTTP://LECASABE.COM 13
OBJETOS
Procedemos a crear los objetos con los que
trabajaremos.

IMPORTANTE!!
Debemos tener creado
nuestro DSN.

HTTP://LECASABE.COM 14
MÉTODO DE CONEXIÓN
Vamos a declarar un procedimiento para poder crear la
conexión con nuestro servidor de base de datos
mediante nuestro DSN de usuario.

HTTP://LECASABE.COM 15
DSN DE USUARIO

En este ejemplo crud_visual hace referencia al nombre


del DSN de usuario que configuramos en nuestro
ODBC.

HTTP://LECASABE.COM 16
ESTADO DE CONEXIÓN

Consultamos el estado de nuestra conexión, en el caso


de que se encuentre cerrada procederemos a abrir.

HTTP://LECASABE.COM 17
ABRIR CONEXIÓN

Mediante el objeto conn invocamos al método Open()


para abrir la conexión.

HTTP://LECASABE.COM 18
MÉTODO PARA LISTAR REGISTROS EN DGV

HTTP://LECASABE.COM 19
MÉTODO PARA LISTAR REGISTROS EN DGV

Primero invocamos a la conexión() y luego generamos la


cadena SQL para realizar la consulta.

El método Fill(DataSet) agrega o actualiza filas en el


DataSet que coincidan con las del origen de datos.

HTTP://LECASABE.COM 20
MÉTODO PARA LISTAR REGISTROS EN DGV

Ya tenemos los datos correspondientes a la consulta en


el objeto ds, que es un objeto de la clase DataSet y
mostrados sobre el control dgvListado que es el control
DataGridView del formulario FormPersona. Luego
configuramos las columnas para rellenar con los datos.

HTTP://LECASABE.COM 21
INVOCAR MÉTODO EN LOAD()

Finalmente invocamos al método listarPersonas()


dentro del evento Load del formulario para que el
DataGridView se nutra en el momento en que se carga
la ventana del formulario.

HTTP://LECASABE.COM 22
MÉTODO PARA ALTA DE REGISTRO

Para poder crear un registro nuevo vamos a necesitar


acceder a todos los valores ingresados en los diferentes
controles y crear nuestra sentencia SQL INSERT para
insertar el nuevo dato en nuestra DB.

HTTP://LECASABE.COM 23
MÉTODO PARA ALTA DE REGISTRO

HTTP://LECASABE.COM 24
MÉTODO PARA ALTA DE REGISTRO

Primero llamamos a la Conexión() y realizamos


validaciones de campos vacíos.

HTTP://LECASABE.COM 25
MÉTODO PARA ALTA DE REGISTRO

Luego procedemos a crear nuestra sentencia SQL para


enviar los valores ingresados a nuestra DB.

HTTP://LECASABE.COM 26
EXECUTENONQUERY()

El método ExecuteNonQuery() ejecuta una instrucción


SQL (INSERT, UPDATE..) contra el objeto Connection de
un proveedor de datos .NET Framework y devuelve el
número de filas afectadas.

HTTP://LECASABE.COM 27
INSTRUCCIÓN TRY...CATCH...FINALLY

Utilizamos Try/Catch que proporciona un medio para


controlar algunos o todos los errores posibles que
pueden producirse en un determinado bloque de
código, mientras sigue ejecutando el código.

HTTP://LECASABE.COM 28
INVOCAMOS MÉTODO EN EVENTO ONCLICK()

Dentro del evento de nuestro botón Guardar


llamaremos al método declarado anteriormente.

HTTP://LECASABE.COM 29
MÉTODO PARA EDITAR REGISTRO

En este caso también vamos a necesitar acceder a


todos los valores ingresados en los diferentes controles
pero crearemos una sentencia SQL UPDATE que nos
permitirá modificar el o los valores de un registro en
particular.

HTTP://LECASABE.COM 30
MÉTODO PARA EDITAR REGISTRO

HTTP://LECASABE.COM 31
INVOCAMOS MÉTODO EN EVENTO ONCLICK()

Dentro del evento de nuestro botón Modificar


llamaremos al método declarado anteriormente.

HTTP://LECASABE.COM 32
MÉTODO PARA ELIMINAR REGISTRO

Para este método vamos a necesitar la sentencia SQL


DELETE que nos permitirá eliminar físicamente un
registro de nuestro DB.

Es muy importante hacer uso del WHERE para evitar


vaciar nuestra tabla en vez de eliminar un registro en
particular.

HTTP://LECASABE.COM 33
MÉTODO PARA ELIMINAR REGISTRO

HTTP://LECASABE.COM 34
INVOCAMOS MÉTODO EN EVENTO ONCLICK()

Dentro del evento de nuestro botón Eliminar


llamaremos al método declarado anteriormente.

HTTP://LECASABE.COM 35
REALIZAR UNA BÚSQUEDA

Las búsquedas son sumamente importantes ya que nos


permiten realizar filtros sobre nuestros registros.
Para esta acción vamos a necesitar un SELECT,
WHERE, LIKE y el comodín %.

HTTP://LECASABE.COM 36
MÉTODO PARA REALIZAR UNA BÚSQUEDA

HTTP://LECASABE.COM 37
INVOCAR UN MÉTODO

En esta oportunidad el método será invocado en el


evento TextChanged() de la caja de texto.

HTTP://LECASABE.COM 38
SELECCIONAR FILA DE DATAGRIDVIEW

Cuando tenemos listado de registros en una


DataGridView nos puede resultar súmamente útil poder
acceder (seleccionar) una fila para luego setear esos
valores en un formulario para su edición.

HTTP://LECASABE.COM 39
MÉTODO PARA SELECCIONAR FILA DE DGV

Cuando tenemos listado de registros en una


DataGridView nos puede resultar súmamente útil poder
acceder (seleccionar) una fila para luego setear esos
valores en un formulario para su edición.

HTTP://LECASABE.COM 40
MÉTODO PARA SELECCIONAR FILA DE DGV

HTTP://LECASABE.COM 41
MÉTODO PARA SELECCIONAR FILA DE DGV

Creamos un objeto donde guardaremos el valor de la


fila seleccionada.

Por medio del objeto podemos hacer uso del método


Cells() para ir seleccionando cada columna y setearla
en cada caja de texto.

HTTP://LECASABE.COM 42
RECOMENDACIÓN

Se recomienda el uso de parámetros para todos los


métodos.

HTTP://LECASABE.COM 43
HTTP://LECASABE.COM 44
FUENTE:
https://support.microsoft.com/es-uy/help/966849/what-is-a-dsn-data-source-name
https://www.tutscode.net/search/label/VB.Net?&max-results=5
https://www.ibm.com/support/knowledgecenter/es/SSQL82_9.5.0/com.ibm.bigfix.doc/Platfor
m/Config/c_iem_odbc_configuration.html
https://desarrolloweb.com/faq/que-es-dsn.html
https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-dsn-windows-5-
2.html
https://docs.microsoft.com/es-es/sql/odbc/reference/what-is-odbc?view=sql-server-2017
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/try-
catch-finally-statement

HTTP://LECASABE.COM 45

También podría gustarte