Saltar al reproductorSaltar al contenido principal
  • hace 3 semanas
📌 En este sexto capítulo de nuestra serie "Programación Orientada a Objetos Avanzado" , completaremos nuestro primer CRUD en C# + MySQL.
Hoy nos enfocaremos en el paso Read (Leer) , aprendiendo cómo consultar los registros de nuestra base de datos y mostrarlos en un DataGridView de forma automática al abrir el formulario, sin necesidad de que el usuario presione un botón.

🔑 Lo que aprenderás en este video:
✅ Cómo crear la consulta SELECTen MySQL para leer los datos de la tabla.
✅ Cómo programar el evento de carga del formulario en C#.
✅ Cómo llenar un DataTable y vincularlo al DataGridView .
✅ Buenas prácticas para separar la lógica de negocio de la interfaz.

💡 Al final de este video, tu aplicación mostrará los registros de manera automática, completando el ciclo del CRUD de forma profesional.
Transcripción
00:00Señores, bienvenidos al maravilloso mundo del desarrollo de software.
00:06Continuamos haciendo el CRUD a una base de datos MySQL,
00:11desde un formulario básico.
00:13En este video lo que haremos es el listar, o sea, hacer leer.
00:19En comandos SQL es el SELECT, SELECT asterisco FROM,
00:24y con la condición que necesitemos, ¿cierto?
00:26Entonces tengamos presente que hay dos formas de listar.
00:28El ejercicio que vamos a hacer es ir a la base de datos
00:31y que te traiga toda la información que hay en tabla
00:34y nos la muestre en el formulario como tal que nos la muestre allí.
00:38Ese es un método.
00:39Y luego haremos otro video donde buscaremos en base de datos,
00:43pero con un ID específico.
00:46Entonces, señores, déjenme, yo les comparto pantalla
00:50para que lo tengamos claro,
00:53tengamos presente de que este es el formulario que estamos trabajando.
00:57Recuerden que para ello, pues, estamos trabajando con SAM
01:01para subir nuestros servicios SQL
01:04y que estamos trabajando con una base de datos MySQL.
01:07Para este caso, la base de datos se llama Prueba Conexión.
01:12Lo venimos trabajando desde una serie de videos atrás
01:16y la tabla se llama Estudiant,
01:18que tiene estos campos ID, nombre, apellido,
01:20que corresponden al formulario como tal.
01:23Entonces, lo que vamos a hacer es incluir, ¿vale?
01:27Pero vamos a hacer el leer.
01:30Y para ello, lo que necesitamos es que tan pronto la aplicación se ejecute,
01:34o sea, este formulario ahora,
01:36el sistema vaya a la base de datos
01:38y nos pinta en pantalla todo lo que hay en la tabla.
01:41Es decir, todo lo que hay aquí.
01:43Para ello, pues, ¿qué necesitamos?
01:45Voy a ampliar un poquito el formulario acá a la izquierda.
01:49Mil disculpas.
01:49Ustedes saben que, pues, el video lo que busca es un entendimiento
01:53de toda la lógica,
01:56más no buscamos que la aplicación se quede bonita.
01:58Ya, pues, eso, ustedes allá atrás tratan de construir una aplicación
02:03bien, bien bonita y con todos los controles.
02:06Entonces, en este espacio en blanco,
02:08voy a tratar de pintar la información.
02:11Para ello, me voy al cuadro de herramientas
02:13y voy a buscar un Data Grid, ¿cierto?
02:15Entonces, pues, aquí lo tengo ya escrito,
02:18Data Grid View.
02:19Es una brilla de datos
02:24o es una ventanita que lo que nos va a permitir
02:26es mostrar los datos en un formato Paula.
02:29Entonces, lo voy a arrastrar.
02:31Vale.
02:32Pues, aquí me trae algunas opciones.
02:33Ya ustedes pueden navegar con esas opciones,
02:35pero no voy a jugar con ellas.
02:36Simplemente lo que voy a hacer es darle clic por fuera del Data Grid View
02:40y lo voy a maximizar un poquito, ¿cierto?
02:44Recuerden que ustedes tan pronto,
02:46mi recomendación siempre ha sido,
02:47siempre que ustedes traigan o creen un proyecto,
02:52creen un elemento aquí en el lienzo,
02:55pues, ustedes deberían ir a propiedades
02:57y bien propiedades como tal cambiarle el nombre al elemento.
03:01Pero, pues, por ahora no lo voy a hacer.
03:03Lo voy a dejar con el nombre que le da por defecto
03:06Visual Studio 2022.
03:09Entonces, por defecto,
03:10él le va a decir que este elemento se llama un Data Grid View 1
03:13y con él vamos a trabajar.
03:15Entonces, aquí vamos a pintar la información en la base de datos,
03:17que está en la base de datos.
03:19¿Cómo lo hacemos?
03:19Nos vamos a la lógica,
03:21que es la pestañita que tenemos aquí atrás.
03:23Recuerden que ese es el lienzo o el diseño.
03:26Y aquí atrás tenemos toda la lógica que hemos creado.
03:29Entonces, Recorderis,
03:30o sea, es un repaso.
03:33Tenemos una cadena de conexión para la base de datos.
03:36Tenemos un método con el que probamos la conexión a la base de datos.
03:40Pues, aquí ustedes pueden maximizar ICB.
03:42Los invito a ver videos previos
03:44donde podemos ver claramente
03:47esa prueba de conexión a la base de datos.
03:51Luego de ello,
03:54tenemos otros métodos
03:56como es el de guardar,
04:00el método de actualizar
04:01y el método de eliminar.
04:03O sea, que aquí tenemos el CRUD,
04:05pero nos faltaría leer.
04:06Tenemos el guardar,
04:08tenemos el actualizar
04:09y tenemos el eliminar.
04:10Lo minimizo.
04:11Entonces, aquí abajo
04:13voy a separar para que lo tengamos en presente
04:17que de aquí hacia abajo
04:19son los eventos de los botones.
04:20Miren que de aquí hacia abajo
04:21son todos los botones que tenemos.
04:24Y estos son mis métodos.
04:27Entonces, voy a documentar métodos para...
04:30Estos son mis métodos.
04:31Estos son mis métodos.
04:34Mis métodos.
04:36¿Sí?
04:38Estos son mis métodos.
04:40Tenemos conexión, guardar, actualizar y eliminar.
04:42Entonces, creemos otro método aquí
04:43que va a ser ¿cómo?
04:44Va a ser de tipo public.
04:47¿Sí?
04:47Va a ser de tipo importante este.
04:49Va a ser de tipo dataset.
04:54Va a ser de tipo dataset.
04:57Y lo vamos a llamar mostrar datos.
05:00Recuerden, él automáticamente,
05:02pues la inteligencia artificial trata de completar todo el código.
05:06Entonces, me está recomendando que el método
05:08debe llamarse mostrar datos.
05:10Por aquí me está instanciando un objeto.
05:15Por lo que veo, la sintaxis está buena.
05:18Le voy a dar tabulador para que la inteligencia artificial me la pinte
05:21y luego se las voy a detallar paso por paso.
05:25Entonces, le di aceptar y acepté la recomendación de la inteligencia artificial.
05:29Entonces, él me dice, creamos un método que llama público.
05:32Es de tipo público, que es dataset, que es un set de datos.
05:38Ahí vamos a guardar un set de datos.
05:40Y el método se llama mostrar datos.
05:44Recuerden que los métodos anteriores fueron de tipo void.
05:47Al ser de tipo void, no retorna nada.
05:51No hay ningún retorno de información.
05:53Mientras que este método, por su naturaleza,
05:56él tiene que retornar una información.
05:59Si yo elimino esta última línea,
06:03el sistema me va a generar un error.
06:04Porque me dice, es un método que espera o retorna información,
06:09pero no está retornando nada.
06:11Entonces, teniendo como premisa eso,
06:16venga, miremos el código para tratar de entender.
06:20Eso fue lo que nos recomendó la inteligencia artificial
06:22y si aplica o no aplica.
06:23Entonces, como sabemos, en esta línea,
06:26estamos instanciando un objeto.
06:29Nuestro objeto se llama MySQL Connection,
06:32en minúscula, de tipo MySQL Connection.
06:36¿Cierto?
06:37Que esta es la clase principal.
06:40Los invito a que vayan a la documentación de Visual Studio 2022
06:44y en específico de C-Sharp,
06:46para que busquen qué hace esta clase de MySQL Connection.
06:49Recuerde que este es un molde
06:51que tiene adentro muchos métodos,
06:53muchas propiedades, ¿sí?
06:56O muchos atributos.
06:58Y lo que estamos haciendo es instanciando mi propio objeto.
07:02Y mi propio objeto se llama MySQL Connection
07:05con M minúscula.
07:08Mire qué diferencia del anterior por la M minúscula.
07:11Y a ese objeto creado,
07:13le estoy mandando la cadena de conexión.
07:15Y ya vimos por allá arriba,
07:17esta es la cadena de conexión,
07:19se queda allá.
07:19Entonces, perfecto.
07:20Esto lo hemos hecho en todos los métodos.
07:22Eliminar, guardar, modificar,
07:26lo hemos hecho allá.
07:27Luego, a ese objeto que acabamos de crear,
07:29como heredó todo lo de la clase principal,
07:32todo lo que esta clase tiene,
07:34que es con mayúscula,
07:35como heredó,
07:36ese señor tiene un método que se llama Open,
07:39que me permite abrir la cadena de conexión.
07:42Abrir la conexión a la base de datos.
07:44Entonces, ojo, muy importante.
07:45Uno de los errores típicos de los desarrolladores
07:48cuando están empezando
07:49es que abren la conexión a la base de datos
07:51y no la cierran.
07:52Es por eso que yo aquí al final la estoy cerrando.
07:54Mire que es el mismo objeto.
07:55Mi objeto se llama MySQL Connection con M,
07:58MySQL Connection con M,
08:00y cierro la conexión a la base de datos.
08:03Abro y cierro.
08:04Vale.
08:05Listo.
08:06Estas líneas de código que les acabo de escribir
08:08son muy parecidas a las que tenemos en los otros métodos.
08:11Ahora,
08:12veamos una variable
08:14de tipo query,
08:16de tipo string,
08:17perdón,
08:17y la voy a llamar query.
08:19¿Sí?
08:19La voy a llamar query.
08:21Y allí mando la sentencia SQL
08:23que necesito traer.
08:25Entonces,
08:26es un select asterisco
08:27from prueba conexión punto estudiante.
08:29Es,
08:30vaya y tráigame todos los campos
08:33de la base de datos,
08:36conexión,
08:36prueba conexión,
08:37y de la tabla estudiante.
08:39Mucho cuidado,
08:40por favor,
08:41con esta línea.
08:42Mucho cuidado con esta línea.
08:44Para términos educativos,
08:46y solamente para que entendamos el proceso,
08:50no le puse ninguna restricción,
08:52sino que estoy yendo a la base de datos
08:54y tráigame todo.
08:55En teoría,
08:55¿qué me va a traer?
08:57Estos registros que estamos viendo en pantalla,
08:59¿cierto?
08:59Me va a traer esos registros
09:00que estamos viendo allí en pantalla.
09:02Como pueden ver,
09:05son solamente 10 registros,
09:07arrancan el 0 y llega hasta el 9,
09:09son solamente 10 registros
09:10y no pasa nada.
09:11Pero,
09:12imagínense ustedes que la base de datos
09:14tenga un millón de registros,
09:16cinco millones de registros,
09:18500 millones de registros.
09:20Si yo no pongo un top,
09:23select asterisco top,
09:25o sea,
09:25si no limito la consulta
09:27y que me traiga 10 registros,
09:2920 registros,
09:3050 registros,
09:31el sistema va a ir a la base de datos
09:33y me va a traer toda esa información
09:35y va a tratar de pintármela en el formulario.
09:38Entonces,
09:39es muy importante esto.
09:40Ustedes esta línea la tienen que limitar
09:42porque si no,
09:43su aplicación se va a degradar con el tiempo.
09:46Para términos explicativos y educativos,
09:49la dejo así abierta.
09:51Entonces,
09:52recomendación,
09:53no lo hagan,
09:54le tienen que poner un control.
09:57Ya ustedes definirán qué control,
09:59pues existen muchos.
10:01Lo hemos visto en clase,
10:03por ejemplo,
10:04cuando hacemos una búsqueda en Google,
10:06cualquier búsqueda,
10:07el día automáticamente me trae 10,
10:0920 páginas web que traen mi consulta
10:11y si ustedes bajan al final de la página web,
10:14van a encontrar la palabra Google,
10:16pero la O es muchas O,
10:19lo que está haciendo es paginando.
10:22Solamente me trae las primeras 10
10:23y me voy a la siguiente O
10:24y me muestro las siguientes 10.
10:26Eso es lo que ustedes deberían hacer allí.
10:28Entonces,
10:29estas tres primeras líneas
10:31obedecen a lo que ya hemos visto
10:34en los otros métodos.
10:36Métodos como guardar,
10:37actualizar,
10:38eliminar.
10:39Aquí no hay nada nuevo.
10:40Lo único,
10:41por favor,
10:42mucho cuidado con esta sentencia SQL.
10:45Listo.
10:46Ahora sí,
10:46tenemos elementos nuevos,
10:48elementos como un,
10:50creamos un objeto que se llama
10:52MySQL Data Adapter.
10:54¿Sí?
10:55Es de esta clase.
10:57¿Sí?
10:58Esta es la clase,
10:59la parte izquierda es la clase.
11:01Este es mi objeto,
11:03este es mi objeto
11:04y estoy instanciando mi objeto.
11:06Recuerden que ustedes lo han llamado
11:08una copia,
11:09un clon,
11:09como lo quieran llamar,
11:10pero en la jerga
11:12de desarrollo de software
11:13se le dice que esto es una instancia.
11:15Estoy instanciando un objeto.
11:16Este es mi objeto.
11:17¿Para qué ese objeto?
11:18Ya lo vamos a ver.
11:20A ese objeto
11:21le estoy mandando
11:22el query.
11:23¿Qué es el query?
11:24El select asterisco from
11:25que vemos en la parte superior.
11:27¿Cierto?
11:27Y le estoy mandando
11:28la conexión,
11:30que la conexión está abierta.
11:32¿Sí?
11:33Entonces,
11:33ese adapter
11:34que es ese adaptador,
11:37ese adaptador,
11:37señores,
11:38supongamos que es un traductor.
11:41¿Sí?
11:41Es un traductor.
11:42Entonces,
11:43abajo tenemos la base de datos
11:45y arriba tenemos nuestra aplicación.
11:48En la mitad
11:48vamos a tener un traductor
11:50que va a ir a traducir
11:51lo que el motor de base de datos
11:53me devuelve
11:54y lo va a traducir
11:55y se lo va a entregar
11:56a mi aplicación.
11:57Entonces,
11:58ese es el adaptador.
12:00¿Listo?
12:00Yo le di ese nombre
12:01y a ustedes le darán
12:02el nombre que quiera.
12:03Adaptador,
12:04el nombre que ustedes consideren.
12:06Es un primer elemento nuevo
12:08en el CRUD
12:09que estamos haciendo.
12:10Luego,
12:11instanciamos otro objeto.
12:15Instanciar,
12:15lo que ustedes llaman
12:16el objeto,
12:18o lo llamaban copia también.
12:19Este es mi objeto,
12:22dataset,
12:23y lo pongo en minúscula.
12:24¿Cierto?
12:24¿De qué tipo?
12:25De un tipo dataset.
12:27Entonces,
12:28existe una clase,
12:29existe un molde
12:30que se llama dataset.
12:32Miren las mayúsculas,
12:34que tiene muchos métodos,
12:35que tiene muchas propiedades
12:37o atributos por allá
12:38y yo voy a clonar
12:39o voy a instanciar un objeto.
12:41Ese objeto,
12:42este es el mío.
12:43¿Para qué el dataset?
12:45Entonces,
12:45tenemos base de datos,
12:47nuestra aplicación
12:48y en la mitad
12:48tenemos un traductor.
12:50El traductor
12:51le va a entregar
12:52al dataset
12:53o al set de datos
12:55para que él pueda pintar
12:56en mi formulario
12:58de manera clara
13:00la información
13:01para que él allí
13:02se encargue
13:03de pintarla
13:03de manera adecuada.
13:05¿Cierto?
13:05Entonces,
13:05tenemos
13:05aplicación,
13:07base de datos,
13:08traductor
13:09y el traductor
13:10le entrega
13:11al dataset,
13:12le entrega
13:13el set de datos
13:14a este objeto
13:15para que los pinte
13:16de manera adecuada
13:17en el formulario.
13:18¿Vale?
13:19Dos elementos nuevos.
13:20Entonces,
13:21¿qué hacemos?
13:21A nuestro adaptador
13:23le llamamos un método
13:25que se llama
13:26film
13:26y en este método
13:28lo que hace es
13:28ejecutar el query
13:30que hay arriba.
13:32¿Cierto?
13:33Por eso,
13:33le estamos
13:34ejecutando el query
13:35que hay arriba
13:36y se lo mandamos
13:37al dataset
13:38o al set de datos
13:40que tenemos creado
13:41y le damos
13:42un nombre
13:43a nuestro cliente.
13:45Entonces,
13:46¿qué es el dataset?
13:47Si el adaptador
13:49era un productor,
13:50el dataset
13:52es como,
13:54hagan de cuenta,
13:54un libro de Excel.
13:56Cuando ustedes
13:56abren un archivo
13:57de Excel,
13:58en la parte inferior
13:59están las hojas,
14:01la hoja 1,
14:02hoja 2,
14:02hoja 3,
14:03que ustedes pueden
14:04dar el nombre
14:05que ustedes quieran
14:06a esas hojas
14:08de Excel.
14:08¿Cierto?
14:10El dataset
14:11es lo mismo,
14:12es como si fuera
14:12un libro de Excel
14:14y que tú le puedes
14:16crear diferentes hojas.
14:18Entonces,
14:19para la primera hoja
14:20o la primera tabla
14:22de Excel,
14:24espero entiendan
14:25mi analogía,
14:26no es estrictamente así,
14:28pero es para que ustedes
14:29entiendan el concepto
14:30de lo que está pasando.
14:31El dataset
14:32es como si fuera
14:32un libro de Excel
14:33y este campito
14:35que estoy resaltando aquí,
14:36estudiantes,
14:37como si fuera
14:37la primera hoja.
14:39Esto quiere decir
14:39que el dataset
14:40es capaz
14:41de margar
14:43en memoria RAM
14:44muchas hojas
14:45o muchas tablas.
14:47Es por eso
14:48que la importancia
14:49del dataset.
14:50Entonces,
14:50de nuevo,
14:50aplicación,
14:52base de datos,
14:53traductor
14:53y el dataset.
14:54El dataset
14:55o el set de datos
14:56lo que hace
14:56es tener muchas hojitas,
14:57muchas tablas.
14:58Es como pintar
14:59nuestra base de datos,
15:01pintarla
15:02en nuestro formulario
15:03de manera visual
15:04para que todos los usuarios
15:07la podamos entender.
15:08¿Vale?
15:08Pues evidentemente
15:10cerramos la conexión
15:11en la base de datos
15:12y retornamos
15:13el dataset.
15:14¿Sí?
15:16Retornamos ese dataset.
15:17Entonces,
15:18con esto
15:19ya tenemos
15:19nuestro primer método
15:20que lo que hace
15:21es hacer la consulta
15:23a la base de datos,
15:24entregársela
15:25al traductor.
15:26El traductor
15:26se la entrega
15:27al señor
15:27que la pinta bien.
15:29El señor
15:30que la pinta bien
15:30es este,
15:31el que se llama
15:32dataset
15:32y este lo que hace
15:34es mostrarla
15:35en nuestro formulario.
15:36¿Vale?
15:37Con eso
15:37ya tenemos
15:38nuestra primera parte
15:40del código.
15:42Ahora,
15:43señores,
15:43¿qué nos resta
15:44en el código?
15:46Nos resta,
15:47espero yo lo pongo
15:48un poquito más grande
15:49que de pronto
15:50para que lo puedan ver
15:52mucho más fácil
15:53ustedes,
15:53tenemos el mostrar datos
15:55que lo acabamos de explicar
15:56y necesitamos crear
15:57otro método.
15:58¿Cuál método?
15:59El método
15:59se llame
16:00listar,
16:01vamos a llamarlo así.
16:01public,
16:03este método
16:03es de tipo
16:04void,
16:06sí,
16:07de tipo void
16:07y se va a llamar
16:11listar.
16:14Vale,
16:14paréntesis
16:15y ahora
16:16y cierro
16:17las llaves.
16:20Vale,
16:20entonces,
16:21señores,
16:21aquí tenemos
16:22nuestros métodos.
16:23la inteligencia artificial
16:26me está ayudando
16:27a autocompletar,
16:28pero yo quiero
16:30cambiar los nombres,
16:34sí,
16:34mil disculpas,
16:35aquí voy a eliminar
16:36este dato,
16:38se lo voy a poner acá
16:39y aquí va a poner
16:40que este se llama
16:41mostrar datos,
16:42mostrar datos.
16:45¿Para qué?
16:46¿Esto por qué
16:47lo acabo de hacer?
16:47Porque la información
16:48que yo les mostré
16:49a ustedes en clase
16:50y que las compartimos
16:51por allá,
16:51pues tiene este orden,
16:53lo estaba invirtiendo
16:54acá,
16:55pero para términos
16:57pues de que ustedes
16:59no se me enreden
17:00versus lo que vimos
17:01en clase
17:01y esto pues
17:02tenga un orden coherente.
17:05Vale,
17:06ahora teniendo claro
17:07eso,
17:08entonces arranquemos
17:09a la inteligencia artificial
17:12de una
17:13me ayudó
17:14a completar
17:15el dato,
17:17pero
17:17me hizo un cambio
17:19aquí,
17:20lo percibí
17:21de una.
17:22Entonces se los voy
17:22a explicar,
17:23la inteligencia artificial
17:24me dice,
17:25uno,
17:25tenemos un método
17:26que se llama
17:26listar,
17:27que lo acabamos
17:28de explicar,
17:29creo otro método
17:30que es de tipo
17:31void y se llama
17:32mostrar datos
17:33y este es el que va
17:34a mostrar la información
17:35en el formulario,
17:36entonces instancia
17:37un objeto
17:37que es de tipo
17:38dataset,
17:39que ya lo vimos
17:39pues allá arriba,
17:40esta línea
17:40pues se podría
17:41optimizar
17:42y a ese
17:44dataset
17:45lo que hago
17:46es llamar
17:47el método
17:49listar
17:50que es el que
17:50tenemos en la parte
17:51superior
17:52y se lo cargamos
17:53al dataset,
17:54entonces
17:54dataset que está
17:56en la parte
17:57derecha,
17:59pues izquierda
17:59para ustedes,
18:00este campo
18:01dataset
18:02lo voy a llenar
18:04con lo que me
18:05retorna
18:06el método
18:06listar
18:07y que me
18:08retorna
18:09que me retorna
18:10por eso lo resalto
18:11que me retorna
18:11el método
18:12listar
18:12todo lo que
18:13acabamos de ver
18:14eso está
18:15cargado aquí
18:16entonces ya
18:17fue a la base
18:18de datos
18:19se ejecutó
18:19el query
18:20se lo entregó
18:21al traductor
18:21el traductor
18:22se lo entregó
18:23al dataset
18:23y lo retornó
18:25por acá arriba
18:26y al retornarlo
18:27se lo meten
18:29a este objeto
18:30llamado
18:31dataset
18:31vale
18:32ahora
18:33que vamos a hacer
18:34a nuestro
18:35data grid view
18:36el que vimos
18:37en el formulario
18:38el cuadrito
18:39que está aquí
18:40este data grid view
18:41le vamos a decir
18:42data grid view
18:43el dato
18:44que te voy a mandar
18:45el dato
18:47que te voy a enviar
18:48viene cargado
18:49en este objeto
18:51que se llama
18:52dataset
18:52¿cuál objeto?
18:54el que tenemos
18:54aquí arriba
18:55y ¿qué tiene ese objeto?
18:56lo que me retorna
18:57el método listar
18:58y ¿qué me retorna
19:00el método listar?
19:01eso no es lo que
19:01acabamos de ver
19:02vale
19:03entonces estoy diciendo
19:04data grid view
19:05el dato
19:05que te voy a enviar
19:06está cargado
19:08con esta información
19:09con este dato
19:10vale
19:10ahora le decimos
19:12data grid view
19:13esa información
19:15que te mandé
19:16en el dataset
19:16le vamos a dar
19:18un nombre
19:19¿qué nombre
19:20le vamos a dar?
19:21le vamos a dar
19:21estudiante
19:22¿sí?
19:23ustedes le pueden dar
19:25estudiante
19:26cualquier nombre
19:27TBL
19:28creo que lo vimos
19:29en clase
19:30creo que en clase
19:31se llamaba TBL
19:32por eso era que
19:33la inteligencia artificial
19:34ahorita me lo recomiendo
19:35así
19:35TBL
19:36pero para este caso
19:38pues para que seamos
19:39coherentes con la información
19:41entonces llama estudiante
19:42de nuevo
19:43¿qué quiere decir
19:44ese estudiante?
19:46recuerden
19:46que el dataset
19:47es como si fuera
19:49un archivo de Excel
19:50y es la hoja
19:52número 1
19:53a la cual le dimos
19:54el nombre
19:54estudiante
19:56que le pueden dar
19:57el nombre
19:57que ustedes quieran
19:58pero para este caso
19:59se va a llamar
20:00estudiante
20:01¿vale?
20:02hasta ahí estamos
20:03claros señores
20:04entonces
20:05con esto
20:06pues ya tendremos
20:06los métodos
20:08que van
20:09a
20:10mostrar la información
20:11en nuestra tabla
20:13ahora yo quiero
20:14que ustedes miren
20:14este formulario
20:15ya la lógica
20:17está clara
20:18yo quiero que ustedes
20:18miren el formulario
20:19cuando
20:20ejecutemos
20:21el formulario
20:22¿qué va a pasar?
20:24el formulario
20:25tan pronto
20:26se abra
20:27él automáticamente
20:28debe ir
20:29a la base
20:30de datos
20:30hacer todo
20:32lo que describimos
20:33entregárselo
20:33al traductor
20:34entregárselo
20:35al dataset
20:35y pintarlo
20:36en el formulario
20:37sin ninguna intervención
20:39humana
20:39sin ningún
20:40evento
20:41generado
20:42por el ser humano
20:43sin ningún
20:44clic
20:45el usuario
20:46haya dado
20:47para que
20:48se muestre
20:49la información
20:50allí en base
20:51de datos
20:51entonces
20:52¿cómo hago
20:54para que eso
20:55funcione?
20:56¿quién es el que
20:56genera ese método?
20:58si no es el usuario
20:59con un clic
21:00tienes el que
21:01genera ese método
21:02ojo
21:03de nuevo
21:03tan pronto
21:04el formulario
21:05abre
21:06es que se llama
21:07el método
21:07eso quiere decir
21:08que este formulario
21:10también es un objeto
21:12que hace parte
21:13del lienzo
21:13y necesitamos
21:15activar
21:16el escuchador
21:17¿cómo activamos
21:18el escuchador
21:19o el listener
21:19de cada uno
21:20de los botones?
21:21pues le damos
21:22doble clic
21:23y se nos abría
21:23el código
21:24que está aquí atrás
21:25por aquí está
21:27el botón
21:27prueba conexión
21:29el guardar
21:30mírelo
21:30por aquí está
21:31cuando le den clic
21:32al botón guardar
21:33llame este método
21:34necesitamos hacer lo mismo
21:36pero con el formulario
21:38entonces ¿qué hacemos?
21:39simplemente le damos
21:40doble clic
21:41a cualquier parte
21:42del formulario
21:43y se nos va a abrir
21:45este load
21:46¿cierto?
21:46y es ahí
21:48donde voy a llamar
21:49el método
21:50¿pero cuál método?
21:52mostrar datos
21:54¿sí?
21:54voy a llamar
21:55el método
21:56mostrar datos
21:57¿por qué
21:57llamar
21:58el método
21:58mostrar datos?
21:59porque el método
22:00mostrar datos
22:01va a crear
22:02este objeto
22:03va a llenar
22:04este objeto
22:05con
22:05lo que
22:06listar
22:07me devuelve
22:08y es lo que
22:09me devuelve
22:10listar
22:10toda esta
22:11información
22:12y me lo retorna
22:14y se pinta
22:16en el
22:16data grid view
22:16le decimos
22:17data grid view
22:19la información
22:20viene aquí
22:20y le voy a dar
22:21un nombre
22:22que se llama
22:23estudiante
22:23vale
22:24entonces
22:25ejecutemos
22:26nuestra
22:26aplicación
22:27para ver
22:28si funciona
22:29exitosamente
22:29o no
22:30entonces
22:30ahí está
22:31haciendo el proceso
22:31de compilación
22:32démosle unos minutos
22:34unos segundos
22:35mientras
22:36el formulario
22:37se abre
22:37él está
22:38yendo a la base
22:39de datos
22:39haciendo la consulta
22:40y efectivamente
22:41aquí nos funcionó
22:42entonces
22:43pues ya lo que queda
22:44es simplemente
22:45ponerlo bonito
22:48ampliar pues
22:49el data grid view
22:49para que todos
22:50los campos
22:51queden
22:51pues que no me toque
22:52este scroll
22:53maximizarlo o no
22:55y en teoría
22:56va a funcionar
22:56si
22:57vamos a meter
22:58un dato nuevo
22:59entonces está
22:59hasta el 9
23:00metemos que hay
23:01un usuario
23:01con el campo 10
23:02y se llama
23:03pppp
23:06y tiene un
23:07apellido
23:08con la T
23:09si
23:09y le decimos
23:10guardar
23:11el registro
23:11que fue guardado
23:12exitosamente
23:12no se ve
23:14aquí
23:14porque no se ve
23:16vamos a la base
23:17de datos
23:17si me lo actualizo
23:18o no
23:18y ahí está
23:19el elemento
23:2110
23:22voy a minimizar
23:23esto por acá
23:24para que lo veamos
23:25aquí está el elemento
23:2610
23:26el registro
23:27número 10
23:28pero que pasa
23:29de por qué
23:30en el formulario
23:30no se me vio
23:31si yo cierro
23:33la aplicación
23:33y vuelvo a abrir
23:34la aplicación
23:35el sistema
23:36si me lo va a mostrar
23:37lo voy a hacer
23:38entonces
23:38voy a cerrar
23:39la aplicación
23:40me voy a visual
23:41ejecuto de nuevo
23:42la aplicación
23:43y me va a mostrar
23:44el elemento 10
23:45si ustedes miran
23:46aquí está
23:47el elemento 10
23:48cómo hacemos
23:49para corregir eso
23:50ojo con la secuencia
23:51de pasos
23:52que yo ejecuté
23:53y la voy a repetir
23:54ingreso
23:55un nuevo registro
23:56que va a ser el 11
23:57le doy
23:59un nombre
24:00cualquiera
24:01un apellido
24:02cualquiera
24:03y ojo
24:04cuando yo doy
24:06el método
24:07cuando le doy clic
24:07en el botón guardar
24:09él va a llamar
24:10el método
24:11guardar
24:12y qué debería
24:13pasar ahí
24:14pues también
24:16debería llamar
24:18el método
24:18mostrar datos
24:19para que la información
24:20se refresque
24:21entonces hagámoslo
24:22en este caso
24:23le voy a dar guardar
24:24y no pasa nada
24:25cierto
24:26voy a cerrar la aplicación
24:28y ojo
24:29que dijimos
24:31que cuando le den clic
24:32al botón guardar
24:34él va a guardar
24:36que ya lo explicamos
24:37y va a llamar
24:38este nuevo método
24:40que se llama
24:40mostrar datos
24:41vale
24:42ahora ejecutémoslo
24:44de nuevo
24:44vamos a la base de datos
24:45para que ustedes
24:46corroboren que el registro
24:47número 11
24:48si quedó cargado
24:49ahí está el registro
24:50número 11
24:51vale
24:52voy a subir esto
24:53un poquito
24:53pues para que ustedes
24:54lo puedan ver
24:55más claramente
24:56aquí
24:56está el registro 11
24:59y voy a ejecutar
25:01la aplicación
25:02de nuevo
25:02y voy a guardar
25:03un nuevo registro
25:05entonces
25:05el formulario
25:08me está trayendo
25:08el registro
25:09número 11
25:10y le doy
25:10insertar un nuevo registro
25:13que se llama
25:14meja
25:14Harrison
25:16con muchas n
25:18cierto
25:20se llama zapata
25:21vale
25:22y lo guardo
25:23ojo
25:24pronto le dé clic
25:25a este botón
25:25la aplicación
25:27va a llamar
25:27el método
25:27guardar
25:28y va a llamar
25:29el método
25:29mostrar datos
25:31y se va a refrescar
25:32automáticamente
25:32va
25:33guardó
25:34y cuando le dé clic
25:35a aceptar
25:36llama al otro método
25:37por eso
25:37el formulario
25:38atrás se registró
25:38se actualizó
25:39y mire el elemento 2
25:41ahora
25:41es que Harrison
25:42me quedó
25:43con muchas n
25:44borramos tantas n
25:46y le decimos
25:47modificar
25:48¿qué va a pasar?
25:50modifica exitosamente
25:52pero no se actualiza
25:54¿qué quiere decir eso?
25:55este método
25:57tendré que agregarlo
25:59en cada uno
26:00de los botones
26:01en el método
26:02actualizar
26:03en el botón
26:04botón actualizar
26:05y en el botón
26:07eliminar
26:08con eso
26:10programación
26:11orientado a objetos
26:12yo creé
26:14unos métodos
26:16estos dos
26:17que se llaman
26:18listar
26:19y mostrar
26:20y los reutilizo
26:22donde quiera
26:23y no tengo que volverlo a escribir
26:25entonces
26:25una de las
26:26dificultades
26:27que ustedes tienen
26:28es que
26:29ustedes desarrollan
26:30en forma de espagueti
26:31de manera secuencial
26:32y no con la programación
26:34orientada a objetos
26:35y el desgaste
26:36de ustedes
26:37es que
26:37ante cualquier evento
26:38como el usuario
26:39le dio clic en guardar
26:40tienen que meter
26:42toda esta lógica
26:43que aquí estoy resaltando
26:46toda esta lógica
26:47la tienen que meter
26:49en el botón
26:49guardar
26:50en el botón
26:51modificar
26:51en el botón
26:52borrar
26:53y en los próximos botones
26:54que vamos a hacer
26:55y es mucho más complejo
26:57meter todo ese bloque
26:58de código por acá
26:59es mucho más fácil
27:00llamar el método
27:01mostrar
27:02vale
27:03entonces
27:04señores
27:04con esto
27:07hemos finalizado
27:09el proceso
27:10de
27:10o la
27:11el primer
27:12la primera parte
27:14de
27:15el leer
27:16que estamos yendo
27:17a la base de datos
27:18y lo estamos pintando
27:19en el data grid view
27:20de manera pues muy fácil
27:21los invito a que miren
27:24el código
27:24ya se los voy a mostrar
27:25pues para que
27:26lo vean en detalle
27:27me voy a devolver acá
27:29voy a minimizar
27:30para que ustedes puedan
27:31escribir el código
27:32de manera mucho más clara
27:33son estos dos métodos
27:35el método
27:36listar
27:37y el método
27:38mostrar
27:39se los dejo aquí
27:41en pantalla
27:41para que lo puedan
27:42digitar
27:44puedan darle pause
27:44al video
27:45y puedan digitarlo
27:46y con esto
27:47lo que estamos yendo
27:48es
27:48al abrir la ventana
27:50el sistema automáticamente
27:52va a ir a la base de datos
27:53y me va a mostrar
27:54lo que encuentra
27:54en base de datos
27:55de nuevo
27:56mucho cuidado
27:56con la línea 84
27:58esta línea select
27:59no puede ir a la base de datos
28:01y traer todo
28:02pues porque la base de datos
28:03para este caso
28:04tiene solamente
28:0511 12 registros
28:06pero cuando tenga millones
28:07de registros
28:08su aplicación se vuelve muy lenta
28:09entonces es importante
28:10que lo tengan ahí presente
28:11y en el siguiente video
28:13lo que haremos es
28:13yo quiero buscar
28:14por un ID
28:15yo quiero buscar
28:16por el ID 5
28:17que me traiga
28:18todos los datos
28:18del ID 5
28:19entonces
28:20para ello señores
28:22no siendo más
28:23ah perdón
28:24no les mostré
28:25el código fuente
28:26entonces aquí
28:27les voy a dejar
28:27el código fuente
28:28un par de segundos
28:28mil disculpas
28:29ahí por
28:30por el desfase
28:32entonces
28:32se los dejo en pantalla
28:33para que le den pause
28:34no siendo más señores
28:36los espero en próximos videos
28:37para que veamos
28:38este mismo método
28:39de leer
28:40es muy parecido
28:41pero lo que vamos a mandar
28:42es un
28:43con un ID
28:44para ello
28:45pues si
28:45si le ponen un poquito
28:46de lógica
28:47en base de datos
28:47en esa fila 84
28:50en esta fila 84
28:52que tenemos por aquí
28:53que estoy resaltando
28:54en esta fila 84
28:56pues lo que tendremos
28:57que poner es
28:58el ID
28:58que el usuario
28:59quiere consultar
29:00pero lo veremos
29:02en próximos videos
29:02entonces no siendo más señores
29:04los espero
29:05en el siguiente video
29:06feliz día
29:06nos vemos
29:08en el siguiente video
29:09Gracias por ver el video.

Recomendada