- hace 3 semanas
📌En este video de nuestra serie "CRUD en C# + MySQL Paso a Paso" , aprenderás a consultar un registro específico en MySQL utilizando C# y mostrarlo en un DataGridView .
🔑 Lo que aprenderás en este video:
✅ Capturar un ID desde un TextBoxpara realizar la búsqueda.
✅ Crear un método en C# para consultar un registro filtrado por ID en MySQL.
✅ Mostrar el resultado en un DataGridView de manera automática.
✅ Manejar casos donde no se encuentre el registro.
✅ Seguir buenas prácticas de conexión y seguridad al usar parámetros en SQL.
📚 Este es un paso clave para que tu aplicación CRUD sea más profesional y permita búsquedas personalizadas en tu base de datos.
💻 Tecnologías usadas:
C#, Windows Forms, MySQL, XAMPP, Visual Studio 2022.
🔑 Lo que aprenderás en este video:
✅ Capturar un ID desde un TextBoxpara realizar la búsqueda.
✅ Crear un método en C# para consultar un registro filtrado por ID en MySQL.
✅ Mostrar el resultado en un DataGridView de manera automática.
✅ Manejar casos donde no se encuentre el registro.
✅ Seguir buenas prácticas de conexión y seguridad al usar parámetros en SQL.
📚 Este es un paso clave para que tu aplicación CRUD sea más profesional y permita búsquedas personalizadas en tu base de datos.
💻 Tecnologías usadas:
C#, Windows Forms, MySQL, XAMPP, Visual Studio 2022.
Categoría
📚
AprendizajeTranscripción
00:01Señores, bienvenidos al maravilloso mundo del desarrollo de software.
00:04En este video haremos el leer en la base de datos, pero partiendo de un ID.
00:12Entonces, en el video previo, en los videos previos, hemos hecho el CRUD completo.
00:16Recuerden que estamos haciendo una serie de videos para hacer un CRUD a la base de datos
00:22desde un formulario hecho en C-Shark, usando la programación orientada a objetos.
00:27Entonces, es un ejemplo muy básico que tiene muchas oportunidades de mejora,
00:32que ustedes deberían controlar un montón de excepciones que hay allí.
00:36Pero esto les permite a ustedes ampliar el panorama de cómo se hace el CRUD
00:40y a partir de allí empezar a enrobujecer su aplicación y aplicarle controles, validaciones y demás.
00:48Entonces, en el video anterior hicimos un leer, pero que fuera la base de datos
00:51y trajera toda la información que hay en la base de datos y la pintara en el formulario.
00:56Luego de ello, de pintarla, cambiamos el método.
01:01No cambiamos, sino que llamábamos el método en todos los botones.
01:04Cualquier botón que guardaba, llamaba al método de mostrar y se mostraba la información en el formulario.
01:11Lo mismo estaba pasando con el botón de actualizar.
01:16Se actualizaba la información en base de datos y se actualizaba en el formulario.
01:21El borrar, borraba en base de datos y actualizaba el formulario.
01:24Entonces, ¿qué vamos a hacer en este caso?
01:26Es con un I.I. en específico que me traiga, vaya a la base de datos, lo busque y me muestre la información.
01:33Entonces, para ello, señores, volvemos al código, volvemos a nuestro formulario.
01:38Por aquí, pues, voy a tratar de modificar el formulario un poquitico.
01:42Vean, amplio por acá el Data Grid View.
01:45Voy a bajar este botoncito por acá y voy a crear un botón nuevo.
01:49El botón nuevo se va a llamar Buscar, ¿vale?
01:52Entonces, busco el botón, arrastro y lo pongo por acá y le voy a dar el nombre, ¿vale?
02:00Al botón, el texto que va a tener es Buscar Texto y voy a maximizarlo por acá.
02:08Ah, perdón.
02:09Voy a compartir el código.
02:12Entonces, lo que hice, retorno, lo que hice fue agregar un botón, que ya ustedes saben,
02:18y a ese botón le agregué un texto que se llamaba Buscar y ahora lo que vamos a hacer es darle el nombre a ese elemento.
02:26El nombre es btn, btn, buscar, ¿cierto?
02:32Entonces, nos queda un elemento o un objeto de tipo botón que lo que va a hacer es buscar en la base de datos por un ID en específico, ¿vale?
02:47Entonces, para ello, ¿cuándo va a pasar eso?
02:52Cuando el usuario le dé doble clic al botón Buscar, pues, evidentemente, el sistema va a ir a la base de datos
02:57y va a buscar, va a capturar la información que tenemos en este textbox.
03:03Si aquí en el textbox hay un 5, él va a ir a la base de datos y va a buscar el ID,
03:09me voy a la base de datos, el ID con campo 5, con ID 5, y me lo va a mostrar de nuevo en el formulario.
03:17Me lo va a mostrar aquí en el formulario.
03:19¿Y dónde me lo va a mostrar?
03:20En el DataGridView.
03:21Entonces, ¿para ello qué hacemos?
03:23Entonces, pues, de nuevo, cuando el usuario dé clic en el botón Buscar,
03:29entonces necesitamos que se genere un evento o un escuchador o un listener,
03:34le damos doble clic y aquí está.
03:35Cuando le den clic al botón Buscar, ¿qué va a pasar?
03:39Algo va a pasar.
03:40¿Pero tenemos los métodos creados?
03:42No, no, señor, no tenemos los métodos.
03:44Voy a minimizar este.
03:46No tenemos el método.
03:47¿Dónde tenemos nuestros métodos?
03:49Recuerden que están hacia arriba.
03:50Entonces, voy a minimizar el de listar y voy a minimizar el método de mostrar.
03:56Estos dos métodos son para mostrar en el DataGridView completo, tan pronto la aplicación abra.
04:02Vamos a crear dos métodos muy parecidos a estos que nos van a permitir que con un ID vaya y se haga la consulta en base de datos.
04:10Entonces, para ello creemos el método que va a ser de tipo público,
04:16que va a ser de tipo público, de nuevo la inteligencia artificial, pues me está completando el dato,
04:21que va a ser de tipo público, que va a ser de tipo dataset, ¿cierto?
04:26Y que yo lo llamé Buscar por ID.
04:29Mire que el de arriba se llamaba listar.
04:32Estamos creando casi que este mismo método, ¿sí?
04:35Pero la diferencia de este método, pues tiene lo mismo, mire que tiene un retorno aquí porque es de tipo dataset,
04:42pero este método va a recibir un parámetro y un parámetro de qué tipo, de tipo ID,
04:48porque vamos a consultar por un ID, ¿vale?
04:51Entonces, ¿qué tenemos?
04:52Ya lo voy a leer un poquito más rápido.
04:54Pues las dos primeras líneas ya las conocemos.
04:57Es instanciar un objeto de tipo MySQL Connection.
05:00Le mandamos la cadena de conexión.
05:02Abrimos la cadena de conexión.
05:03Abrimos la conexión a la base de datos.
05:05Cerramos la conexión por aquí abajo a la base de datos.
05:09Creamos una variable que se llama query de tipo string.
05:13Y es ahí donde mandamos nuestra consulta.
05:18En el método anterior del video previo, estábamos yendo a hacer la consulta hasta aquí.
05:24Lo que tenemos que hacer es select asterisco from nuestra base de datos, punto tabla,
05:31donde el ID, ¿cuál ID?
05:35Es igual a un ID, pero ¿cuál es el ID?
05:40Ahorita vamos a ver de dónde capturamos ese ID.
05:43Esto, evidentemente, lo vamos a tener que capturar de la cajita de texto, ¿cierto?
05:47No el textbox.
05:48Pero dejémoslo tipo variable aquí.
05:50Pues ustedes aquí podrían trabajar con variables más explícitas, con el arroba.
05:54Lo veremos en videos futuros, pero para que ustedes vayan a entender.
05:58¿Vale?
05:59El adaptador, que hablábamos de que era un adaptador de tipo...
06:03No de tipo, sino que hacíamos una analogía que era como el traductor.
06:08Creamos el dataset, que ya explicamos qué es el dataset,
06:11que es el que coge lo que el traductor le entrega
06:14y lo pinta en el formulario en formato cuadrícula,
06:20formato cuadrícula, y que le podemos dar nombre.
06:24Y que hacíamos una analogía que sí era como un archivo de Excel.
06:27Archivo de Excel, el dataset es como si fuera un archivo de Excel,
06:31donde va a tener muchas hojas en la parte inferior.
06:34Un archivo de Excel tiene muchas hojas y yo le puedo dar nombre a esas hojas.
06:37Es por eso que a esta hoja en específico le voy a dar este nombre, TBL.
06:42¿Por qué?
06:44Porque así la quiero llamar, ¿cierto?
06:45Ustedes le podrían dar el nombre que quieran.
06:47¿Vale?
06:48Entonces, creamos nuestro adaptador.
06:51Ojo, ahorita les abro los dos métodos para que miren la sintaxis que utilizo en uno y el otro.
06:58Es lo mismo, simplemente que aquí se llama adaptador.
07:01Me dio por llamarlo adaptador, pero arriba lo llamaba MySQL Data Adapter.
07:07Era muy parecido a esto en minúscula, pero recuerden que el objeto le doy el nombre que yo quiera.
07:12Listo.
07:13A ese adaptador, ¿qué le tengo que mandar?
07:16Le tengo que mandar el query.
07:20¿Qué es el query?
07:21Toda la instrucción SQL y la conexión que está abierta.
07:26¿Vale?
07:26Y aquí en esta instrucción, adaptador.file, aquí es donde se ejecuta la instrucción SQL y se la inserto al dataset, que es capaz de pintar.
07:42Y le doy un nombre a esa tabla, que la llamo TBL.
07:46Le puedo dar el nombre que yo quiera.
07:47De nuevo, cierro la conexión y retorno el dato.
07:52Voy a maximizar estos dos métodos y déjame por acá para ver si de pronto los alcanzan a ver.
08:00Miren el método listar por acá y miren el método buscar por ID.
08:07Literalmente es el mismo método.
08:11Lo único que cambia es el query donde estoy mandando por acá el ID.
08:19Voy a validar si mi foto les deja ver si estoy validando el ID.
08:24¿Vale?
08:25Pero es literalmente el mismo método.
08:28¿Sí?
08:28Es casi la misma información.
08:30Entonces ya tenemos el primer método, que es volver por ID.
08:33Ahora, ¿qué nos queda pendiente?
08:34Nos quedará pendiente el otro método, que era mostrar datos.
08:38Entonces, creémoslo aquí en la parte inferior.
08:41Venga, yo bajo bastante este código para que lo escribamos.
08:45Y déjeme, yo dejo los dos métodos aquí, pues muy visibles, para que podamos ver.
08:52¿Listo?
08:52Entonces, ¿qué otro método tendré que crear?
08:55Un método de tipo public.
08:59Perdón.
09:00Lo ajusto a la sangría.
09:02Entonces, un método de tipo public.
09:03Que va a ser público, pues perdón, y de tipo void.
09:07Y se va a llamar mostrar datos en el GreenView.
09:11¿Sí?
09:12El día arriba se llamaba mostrar datos.
09:14Y este es mostrar datos en el GreenView.
09:16Que le puedo dar el nombre que yo quiera.
09:17Mostrar datos por ID.
09:20Por ID.
09:21Para que quede, pues, más ajustado a la realidad.
09:26¿Sí?
09:26Arriba estoy buscando por ID.
09:27Y aquí estoy mostrando por ID.
09:29Así se llama el método.
09:29Pero, ojo, en el primer método, necesita un parámetro de tipo ID.
09:35Y este segundo método necesita otro parámetro, que es el dataset.
09:40Es el set de datos.
09:41¿Sí?
09:42Y voy a minimizar el buscar por ID.
09:48Y voy a maximizar el mostrar datos.
09:50Este era el mostrar datos en el GreenView completo.
09:56Sin ningún filtro.
09:57Sin ningún where.
09:58Y este, el que estoy resaltando aquí, es el método que me lo muestre por medio de un ID.
10:04Pues, miren la diferencia.
10:06El de arriba no necesita parámetros.
10:07El de abajo sí necesita parámetros.
10:09Necesita el dataset.
10:11¿Vale?
10:11Y lo que estoy diciendo es lo mismo que habíamos hablado ahorita.
10:15Señor DataGridView.
10:17Te voy a mandar datos.
10:19Y los voy a mandar en este parámetro.
10:22En este dato.
10:22Vienen cargados aquí en este objeto.
10:26Viene dentro del dataset.
10:28O sea, viene aquí como parámetro del método.
10:30Pero, ¿cómo así?
10:32No entiendo.
10:33Espérenme.
10:33Vamos al botón para que miremos la lógica.
10:36Y luego les digo, señor DataGridView.
10:38El nombre que le vamos a dar a esa tabla se llama TVL.
10:41¿Sí?
10:42Entonces, el señor ya tiene.
10:43Voy a minimizar aquí arriba.
10:45Mostrar datos.
10:46Y voy a dejar solamente los métodos que nos competen.
10:49Mostrar por ID.
10:50El método mostrar por ID.
10:52Ya lo explicamos.
10:53Que necesita un parámetro que es el ID.
10:55¿Cierto?
10:56Y el método mostrar.
10:58Que necesita otro parámetro que es el set de datos.
11:01¿Cierto?
11:02Ahora bien.
11:02¿Quién llama estos dos métodos?
11:05Recuerden.
11:06Estando en el formulario.
11:07El usuario abre el formulario.
11:09Tras en este cuadrito DataGridView.
11:14Se van a ver todos los datos de la base de datos.
11:17Ya lo vimos.
11:18Les recomiendo que vayan al video anterior.
11:21Para que ustedes allá, pues, refresquen memoria.
11:25Pero el usuario necesita poner un numerito acá.
11:30El 3, el 4, el 5, el ID que él quiera.
11:33Y al darle clic en buscar, el sistema vaya a ir.
11:37Tome ese parámetro.
11:38Tome ese parámetro.
11:40Y vaya y ejecute.
11:42Entonces es por eso que teníamos por aquí el botón buscar.
11:47Cuando le den clic al botón buscar, va a pasar algo.
11:51Pero ¿qué va a pasar?
11:53Necesito el número, el usuario, uno en la cajita de texto.
12:00En esta cajita de texto ID.
12:01Y necesito capturar esa información.
12:04¿Y cómo la capturo?
12:05Mire que el sistema automáticamente, la inteligencia artificial me está ayudando a completar la información.
12:09Pero voy a mirar si el código que me recomienda es el adecuado.
12:14Entonces me está recomendando.
12:16El código que me recomendaba la inteligencia artificial no me parece agradable.
12:21Voy a poner este que ya yo lo tenía previamente construido con comentarios para que ustedes lo entiendan.
12:28Entonces en el botón, cuando le den clic al botón guardar, ¿qué es lo que va a pasar?
12:33Voy a crear una variable.
12:35Una variable que se llama ID.
12:36Esa variable es de tipo string.
12:41¿Y qué valor le voy a asignar?
12:44¿Qué valor la voy a cargar?
12:46¿Con qué valor?
12:47Con lo que haya en el pxbid.text.
12:52Porque así se llama este objeto, este elemento, esta cajita de texto.
13:00Tiene por nombre en las propiedades, aquí en las propiedades, lo voy a buscar.
13:06Mírenlo por acá.
13:07Tiene por nombre, si lo ven, pxbid.
13:12Entonces le digo, pre una variable que se llama ID de tipo string, ¿cierto?
13:17Y el texto que hay en este elemento, asígneselo a esa variable.
13:26Primer punto.
13:27Segundo punto.
13:28Tenemos que llamar el método.
13:30¿Cuál método?
13:31Entonces, creamos un objeto, ¿sí?
13:34El tipo set de datos, ¿cierto?
13:37Así lo llamé yo, data set.
13:39Y es de este tipo, es del tipo set de datos.
13:41Y a este objeto, le voy a invocar el método, buscar por ID, y le mando el parámetro ID.
13:50¿Cuál parámetro ID?
13:52Este que tenemos aquí, que está lleno con lo que hay en la cajita de texto.
13:58Entonces, al llamar este método, este método me devuelvo líneas arriba.
14:03Este método, vean acá, buscar por ID, necesita un parámetro que es de tipo ID, que es el, me bajo, que es el mismo, estamos capturando por acá.
14:16Entonces, este método se ejecuta, porque ya tiene el ID, entonces abre la conexión a la base de datos, ejecuta el query.
14:24Y el query que necesita, ese ID, que viene aquí, y que fue capturado en el botón buscar, cuando lo capturé de la cajita de texto, y se lo inserté a la variable ID, y llamé el método con ese parámetro.
14:46¿Sí?
14:46Entonces, llamo ese método con ese parámetro, y lo cargo en el data set.
14:52¿Vale?
14:52Y luego de eso, ¿qué es lo que tengo que hacer?
14:55Pues, llamar el método, pero no se llama método en GreenView, sino que le habíamos cambiado el nombre, era mostrar datos por, ¿cómo se llamaba?
15:07Perdón, me excuso, se llamaba mostrar datos por ID.
15:12Así se llamaba nuestro método.
15:13Entonces, bajo, lo inserto aquí, se llama mostrar datos por ID, que ya es el que me va a mostrar en pantalla, y que le mando un parámetro.
15:22Data set, o set de datos.
15:24¿Vale?
15:25Entonces, ¿qué es lo que estoy haciendo aquí?
15:26Y en estas tres primeras líneas, recuerden que está comentado, en estas tres primeras líneas es, creo una variable de tipo string, donde la cargo con lo que está en la cajita de texto.
15:39Creo un objeto de tipo data set, el cual lo voy a llenar, o le voy a asignar lo que retorna este método, al cual le mandé un ID, que está líneas arriba, ya lo explicamos, y luego muestro la información, y para mostrar la información, necesito enviarle lo que se retornó por acá.
15:59Este señor retorna un dato, se lo inserta a este que estoy por acá, seleccionando, y este es el que mando como parámetro acá.
16:09Y mostrar datos, ¿qué es lo que hace?
16:10Me devuelvo, y mostrar datos, lo que hace es decir, ¡ay señor, Data Grid View, te voy a mandar un dato, y viene aquí!
16:20Y voy a llamar a esa tabla con un nombre, y es esta tabla.
16:24¿Vale?
16:24Entonces, esas tres líneas están haciendo eso.
16:26Estas tres líneas están haciendo eso.
16:28¿Vale?
16:28Ahora, esto es opcional, de nuevo, el control de excepciones, si el usuario me inserta un registro que no existe en la base de datos, me inserta al 1999, como vimos, solamente hay 12 registros,
16:41es el sistema que debe hacer, pero debe sacar un pop-up, un mensajito que diga que no se encontró ningún registro en la base de datos.
16:48¿Cómo hacemos eso?
16:49Pues, hacemos una condicional sin el data set, recuerden que el data set es el que tiene el dato.
16:55Entonces, de nuevo, clicación, data set, traductor, y abajo está la base de datos.
17:02La base de datos le entrega al traductor, el traductor le entrega al data set, el data set es el que pinta.
17:07Pero si el data set no tiene nada que pintar, si el data set no tiene ningún registro que pintar, ¿sí?
17:15Tus filas son igual a cero, entonces, ¿qué tenemos que sacar?
17:19Ah, no se encontró ningún registro en la base de datos con ese ID.
17:25Con este ID, ¿cuál ID?
17:27El que capturamos por aquí arriba.
17:29Entonces, señores, con esto, pues en teoría debería funcionar.
17:32Ejecutemos la aplicación a ver si de pronto funciona.
17:35Por acá.
17:45Entonces, ahí la aplicación ya nos está mostrando, ¿cierto?
17:52Si bajo por aquí están los 12 registros y si yo voy a mirar el registro número 12 y le digo al botón que acabamos de crear, que se llama buscar, el sistema va a ejecutar el método buscar, va a capturar el dato que yo inserté aquí, se lo va a asignar a la variable, que es lo que estábamos viendo acá, ¿cierto?
18:12Lo va a borrar aquí, este dato número 12 se lo va a asignar a esta variable ID y arranca la ejecución del programa.
18:19Le digo buscar y automáticamente me muestra que el 12 es Harrison Zapata.
18:22¿Qué pasa con el método 3?
18:24Buscar, me dice que 3 es Ana.
18:27El usuario con ID 5.
18:29Buscar, ahí está.
18:30Y vámonos a base de datos para que miremos, está hasta 11 registros, insertemos un registro que supere ese número, el 12, y miremos a ver qué nos sale.
18:40Buscar, ah no, 12 sí lo encontró, perdón, es que no ha actualizado la base de datos.
18:44Voy a la base de datos, actualizo, efectivamente hay 12 registros, entonces insertemos el 13.
18:49Hagamos una búsqueda por el 13, buscar, me dice no se encontró ningún registro con el ID número 13.
18:54Con esto señores, la aplicación está haciendo lo que tiene que hacer, voy a cerrar la aplicación.
19:04Les voy a dejar este código por acá en pantalla para que ustedes lo vean, recuerden que es del botón Tick,
19:13y ustedes puedan tratar de transcribirlo y tratar de entender la lógica como se los acabo de describir.
19:20Denle en pause y pueden ver el código con más claridad.
19:24Recuerden que este es el del botón Tick, pero por aquí arriba teníamos los otros dos métodos.
19:29Aquí los dejo, buscar por ID y mostrar datos por ID.
19:35Esos eran los tres métodos que acabamos, dos métodos que creamos y que son invocados por un botón.
19:41Cuando el usuario le dé clic a ese botón, se van a ejecutar esos métodos.
19:45Entonces, señores, no siendo más, los invito a que sigamos viendo esta serie de videos
19:53para que ustedes puedan entender la lógica asociada a la base de datos, hacer un CRUD a la base de datos.
20:01En los videos siguientes lo que hacen es, bueno, ya somos capaces de hacer el CRUD completo,
20:05somos capaces de insertar un registro, somos capaces de modificar un registro,
20:08somos capaces de leer, de borrar un registro.
20:10Y en estos dos últimos videos lo que hicimos fue leer registros de la base de datos.
20:16Ahora, si el usuario necesita la información que se ve en pantalla, bajarla a un Excel.
20:24Tratemos de hacer eso en los siguientes videos.
20:27Entonces, señores, no siendo más, los espero en los próximos videos
20:30para que se pongan al día con el ejercicio que estamos haciendo del CRUD con un formulario en C-Shot.
20:36Entonces, feliz día para todos.
20:40¡Suscríbete al canal!
Recomendada
23:17
|
Próximamente
16:35
10:48
8:52
14:13
9:08
3:54
38:18
4:20
2:24
29:14
0:46
2:11