consultar datos en mysql desde c#

▷ Consultar – Buscar Registros en MySQL con C#

 
 
En este articulo vamos a continuar con la segunda parte de los tutoriales sobre C sharp y la Base de Datos MySQL, en esta serie de articulo y tutoriales estamos aprendiendo a Insertar, Modificar, Eliminar y Consultar registros desde C# en una tabla de MySql (Clientes), a esto también se le llama CRUD. En la parte anterior aprendimos a insertar registros en la tabla clientes lo puedes ver ACÁ

En esta parte 2 vamos aprender a consultar registros en la Base de Datos creada en MySql, para lo cual realizaremos una búsqueda de un cliente especifico por su campo nombre y apellido, los registros que devuelva la búsqueda los mostraremos en un DataGridView que estará agregado a un formulario, básicamente seria una pequeña consulta Sql hacia la tabla Clientes, por lo tanto lo que debemos realizar seria lo siguiente:

Windows Forms en C# y MySQL

 
1. Agregar un nuevo formulario al cual le llamaremos BuscarClientes, este formulario debe contener dos label (Nombre, Apellido), dos textbox para el nombre y el apellido respectivamente, un DataGridview y 3 botones el diseño te debería quedar como lo muestro en la siguiente imagen:

boton buscar en datagridview c#
Formulario para Buscar registros en Base de Datos

 

Método para Buscar datos en MySql desde C#


2. Crear un método en la clase ClientesDAL al cual le nombraremos Buscar y tendrá el siguiente código:


 public static List<Cliente> Buscar(string pNombre, string pApellido)
       {
           List<Cliente> _lista = new List<Cliente>();
           
               MySqlCommand _comando = new MySqlCommand(String.Format(
              “SELECT IdCliente, Nombre, Apellido, Fecha_Nacimiento, Direccion FROM clientes  where Nombre ='{0}’ or Apellido='{1}'”, pNombre,pApellido), BdComun.ObtnerCOnexion());
               MySqlDataReader _reader = _comando.ExecuteReader();
               while (_reader.Read())
               {
                   Cliente pCliente = new Cliente();
                   pCliente.Id = _reader.GetInt32(0);
                   pCliente.Nombre = _reader.GetString(1);
                   pCliente.Apellido = _reader.GetString(2);
                   pCliente.Fecha_Nac = _reader.GetString(3);
                   pCliente.Direccion = _reader.GetString(4);
                 
                   _lista.Add(pCliente);
               }
           
           return _lista;
       }


3. Ya teniendo el método Buscar creado, agregamos otro método, al cual lo he nombrado ObtenerCliente, este método debe contener el siguiente código:

       public static Cliente ObtenerCliente(int pId)
       {
           Cliente pCliente = new Cliente();
           MySqlConnection conexion = BdComun.ObtnerCOnexion();

           MySqlCommand _comando = new MySqlCommand(String.Format(“SELECT IdCliente, Nombre, Apellido, Fecha_Nacimiento, Direccion FROM clientes where IdCliente={0}”, pId), conexion);
               MySqlDataReader _reader = _comando.ExecuteReader();
               while (_reader.Read())
               {
                   pCliente.Id = _reader.GetInt32(0);
                   pCliente.Nombre = _reader.GetString(1);
                   pCliente.Apellido = _reader.GetString(2);
                   pCliente.Fecha_Nac = _reader.GetString(3);
                   pCliente.Direccion = _reader.GetString(4);                   
               }

           conexion.Close();
           return pCliente;           
        }


4. Ahora lo que hacemos es abrir el formulario BuscarCliente cuando se haga clic en el botón Buscar del formCliente, es decir en el formulario principal de administración de los clientes (ver vídeo).


5. En el formulario BuscarCliente en su botón Buscar invocamos el método Buscar, para cargar los datos en el datagridview el código quedaría así:

private void btnBuscar_Click(object sender, EventArgs e)
        {
            dgvBuscar.DataSource = ClientesDAL.Buscar(txtNombre.Text, txtApellido.Text);
        }

Botón Buscar en C# 


6. Ahora en el botón Aceptar capturamos el Id del cliente seleccionado e invocamos el método ObtenerCliente enviando como parámetro el Id que selecciono el usuario en el datagridview, el código es el siguiente:

 private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (dgvBuscar.SelectedRows.Count == 1)
            {
                int id = Convert.ToInt32(dgvBuscar.CurrentRow.Cells[0].Value);
                ClienteSelecionado = ClientesDAL.ObtenerCliente(id);

                this.Close();
            }
            else
                MessageBox.Show(“debe de seleccionar una fila”);
        }

Prácticamente esto seria todo, para aclarar todas las dudas o errores que han surgido, te dejo el tutorial en el que implementó en código anterior:


Link del vídeo: www.youtube.com/watch?v=xXxXse4W77Y (Dale like)

Siguiente articulo: Modificar Registros en MySql desde C#

  

Todos los Artículos:


28 comentarios en “▷ Consultar – Buscar Registros en MySQL con C#”

  1. Hola.

    Antes que nada gracias por tus tutoriales, me han servido de ayuda pero, tengo un detalle.
    Al momento de colocar el código al botón buscar, no se llena el datagridview con los datos, es decir, se agregan las filas pero aparecen en blanco sin ninguna información.

    Espero me puedas ayudar con ésto.

    Saludos.

    Responder
  2. Hola,
    Antes que nada quiero agradecerte por los tutoriales, me han sido de gran utilidad, lo que quería consultarte es cómo sería para realizar la búsqueda por un campo entero por ejemplo DNI en lugar de por nombre y apellido.
    Muchas gracias.

    Responder
  3. Hola amigos necesito su ayuda!!!, tengo un formulario de registro y lo que quiero es obtener solo el ID de una tabla en MySql y visualizar ese Id en un textbox con el fin de saber en que posicion me encuentro depues de guardar los datos del formulario de registro. salu2

    Responder
  4. El índice (basado en cero) debe ser mayor o igual a cero y menor que el tamaño de la lista de argumentos.a mi me tira este error al darle aceptar una vez seleccionado el cliente.. porque podría ser?

    Responder
  5. ese error en la linea de la clase obtener cliente " MySqlCommand comando = new MySqlCommand(String.Format("SELECT nombre,apellido,dni,telefono,garante,idsocio FROM socio where idsocio={5}", pid), conexion);" yo tengo algunas cosas porque estoy haciendo otra cosa mi idsocio esta en la posicion 5..

    Responder
  6. Hola, quisiera saber si me podrian ayudar ya que tengo un error en mi formulario de buscarAlumno
    la linea que me marca el error es la siguiente
    public Alumno AlumnoSeleccionado { get; set; }
    y me arroja el siguiente error y no se komo arreglarlo

    Error 1 Incoherencia de accesibilidad: el tipo de propiedad 'ColegioTENAM.Alumno' es menos accesible que la propiedad 'ColegioTENAM.BuscarAlumno.AlumnoSeleccionado' C:UsersAdministradorDocumentsVisual Studio 2010ProjectsColegioTENAMColegioTENAMBuscarAlumno.cs 20 23 ColegioTENAM

    Responder
  7. hlola tengo una duda que pasa con las variables que están en la clase clientes, ya que al pasar de un formulario a otro se borran los datos en ellas, intente llamarlas desde otro formulario y llegan vacías saludos y gracias.

    Responder
  8. Como Crear un Botón Buscar con un Textbox, en visual Studio C# y MySql

    Soy un poco novato en esto y estoy haciendo un pequeño proyecto en el que tengo una Base de Dato Llamada Consulta_clínica.

    Las Tablas que Tengo son las siguientes:

    Paciente:

    id_pacient

    nombre_pacient

    eda_pacient

    dir_pacient

    La cual están llenas con los registro de los paciente .

    El problema es el Siguiente : Tengo otra tabla llamada Consulta en la cual por medio de un Botom Buscar acompañado de un texBox quiero Llamar el nombre o la Id_paciente, y al elegir el id me llene todos lod emas campo de mi formularios como : nom_pacient, eda_pacient, dir_pacient, es buscado en muchos foro pero casi todos me dan unas informaciones en la cuales no se donde poner cadas código:

    Deseo que el que me pueda ayudar le agradecería y Me digiera por ejemplo Este código va en el Botón Buscar, este en el texbox … Etc..

    Así lo entendería Mejor.

    Responder
  9. Buenas tardes en Insertar, Modificar, Eliminar y Consultar Datos con C# y MySQL – Pt 2 la parte del dgvBuscar me da error en la busqueda
    dgvBuscar.DataSource = ClientesDAL.Buscar(txtTelefono.Text, txtApellido.Text); me dice txtTelefono.Text y txtApellido.Text no existen en el contexto actual; cual seria el problemas; gracias por la yuda que me puedas brindar

    Responder

Deja un comentario