lecasabe - vb.net - progiii€¦ · nuestra interfaz gráfica de vb.net vamos hacer uso del open...

45

Upload: others

Post on 08-Aug-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante
Page 2: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

H T T P : / / L E C A S A B E . C O M 2

Page 3: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CRUD

H T T P : / / L E C A S A B E . C O M 3

Page 4: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CRUD

H T T P : / / L E C A S A B E . C O M 4

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)

Page 5: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

VB.NET + MYSQL

H T T P : / / L E C A S A B E . C O M 5

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.

Page 6: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

EJEMPLO

H T T P : / / L E C A S A B E . C O M 6

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.

Page 7: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

BASE

DE DATOS

UTILIZAREMOS

ESTA BD PARA

TODO EL

EJEMPLO.

H T T P : / / L E C A S A B E . C O M 7

Page 8: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CAPA

GRÁFICA

EN VISUAL

STUDIO

CREAREMOS

ESTE

FORMULARIO

PARA

MANIPULAR LOS

REGISTROS.

H T T P : / / L E C A S A B E . C O M 8

Page 9: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CÓDIGO

LÓGICA Y DATOS

H T T P : / / L E C A S A B E . C O M 9

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.

Page 10: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

SYSTEM.DATA.ODBC

H T T P : / / L E C A S A B E . C O M 10

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.

Page 11: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CLASES

H T T P : / / L E C A S A B E . C O M 11

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

Page 12: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CLASES

H T T P : / / L E C A S A B E . C O M 12

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.

Page 13: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

CLASES

H T T P : / / L E C A S A B E . C O M 13

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.

Page 14: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

OBJETOS

H T T P : / / L E C A S A B E . C O M 14

Procedemos a crear los objetos con los que

trabajaremos.

IMPORTANTE!!

Debemos tener creado

nuestro DSN.

Page 15: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO DE CONEXIÓN

H T T P : / / L E C A S A B E . C O M 15

Vamos a declarar un procedimiento para poder crear la

conexión con nuestro servidor de base de datos

mediante nuestro DSN de usuario.

Page 16: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

DSN DE USUARIO

H T T P : / / L E C A S A B E . C O M 16

En este ejemplo crud_visual hace referencia al nombre

del DSN de usuario que configuramos en nuestro

ODBC.

Page 17: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

ESTADO DE CONEXIÓN

H T T P : / / L E C A S A B E . C O M 17

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

de que se encuentre cerrada procederemos a abrir.

Page 18: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

ABRIR CONEXIÓN

H T T P : / / L E C A S A B E . C O M 18

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

para abrir la conexión.

Page 19: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA LISTAR REGISTROS EN DGV

H T T P : / / L E C A S A B E . C O M 19

Page 20: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA LISTAR REGISTROS EN DGV

H T T P : / / L E C A S A B E . C O M 20

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.

Page 21: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA LISTAR REGISTROS EN DGV

H T T P : / / L E C A S A B E . C O M 21

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.

Page 22: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

INVOCAR MÉTODO EN LOAD()

H T T P : / / L E C A S A B E . C O M 22

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.

Page 23: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA ALTA DE REGISTRO

H T T P : / / L E C A S A B E . C O M 23

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.

Page 24: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA ALTA DE REGISTRO

H T T P : / / L E C A S A B E . C O M 24

Page 25: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA ALTA DE REGISTRO

H T T P : / / L E C A S A B E . C O M 25

Primero llamamos a la Conexión() y realizamos

validaciones de campos vacíos.

Page 26: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA ALTA DE REGISTRO

H T T P : / / L E C A S A B E . C O M 26

Luego procedemos a crear nuestra sentencia SQL para

enviar los valores ingresados a nuestra DB.

Page 27: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

EXECUTENONQUERY()

H T T P : / / L E C A S A B E . C O M 27

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.

Page 28: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

INSTRUCCIÓN TRY...CATCH...FINALLY

H T T P : / / L E C A S A B E . C O M 28

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.

Page 29: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

INVOCAMOS MÉTODO EN EVENTO ONCLICK()

H T T P : / / L E C A S A B E . C O M 29

Dentro del evento de nuestro botón Guardar

llamaremos al método declarado anteriormente.

Page 30: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA EDITAR REGISTRO

H T T P : / / L E C A S A B E . C O M 30

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.

Page 31: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA EDITAR REGISTRO

H T T P : / / L E C A S A B E . C O M 31

Page 32: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

INVOCAMOS MÉTODO EN EVENTO ONCLICK()

H T T P : / / L E C A S A B E . C O M 32

Dentro del evento de nuestro botón Modificar

llamaremos al método declarado anteriormente.

Page 33: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA ELIMINAR REGISTRO

H T T P : / / L E C A S A B E . C O M 33

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.

Page 34: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA ELIMINAR REGISTRO

H T T P : / / L E C A S A B E . C O M 34

Page 35: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

INVOCAMOS MÉTODO EN EVENTO ONCLICK()

H T T P : / / L E C A S A B E . C O M 35

Dentro del evento de nuestro botón Eliminar

llamaremos al método declarado anteriormente.

Page 36: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

REALIZAR UNA BÚSQUEDA

H T T P : / / L E C A S A B E . C O M 36

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 %.

Page 37: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA REALIZAR UNA BÚSQUEDA

H T T P : / / L E C A S A B E . C O M 37

Page 38: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

INVOCAR UN MÉTODO

H T T P : / / L E C A S A B E . C O M 38

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

evento TextChanged() de la caja de texto.

Page 39: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

SELECCIONAR FILA DE DATAGRIDVIEW

H T T P : / / L E C A S A B E . C O M 39

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.

Page 40: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA SELECCIONAR FILA DE DGV

H T T P : / / L E C A S A B E . C O M 40

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.

Page 41: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA SELECCIONAR FILA DE DGV

H T T P : / / L E C A S A B E . C O M 41

Page 42: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

MÉTODO PARA SELECCIONAR FILA DE DGV

H T T P : / / L E C A S A B E . C O M 42

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.

Page 43: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

RECOMENDACIÓN

H T T P : / / L E C A S A B E . C O M 43

Se recomienda el uso de parámetros para todos los

métodos.

Page 44: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

H T T P : / / L E C A S A B E . C O M 44

Page 45: lecasabe - VB.Net - ProgIII€¦ · nuestra interfaz gráfica de VB.Net vamos hacer uso del Open DataBase Connectivity (ODBC). La estructura del código puede ser optimizada mediante

H T T P : / / L E C A S A B E . C O M 45

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