Indice del Articulo
Insertar, Modificar, Eliminar y Buscar datos en MySQL desde C# – Parte 2
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
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:
y el videito Q_Q
buenos tutoriales gracias.
Este comentario ha sido eliminado por el autor.
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.
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.
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
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?
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..
Hola,quisiera saber si me pueden ayudar a obtener el id asignado a un registro nuevo, ya que me interesa saber el id que se le asigno a mi nuevo registro, de antemano gracias.
Hooa,como te fue,ya enonctraste la menra? yo estoy batallando con los mesmo pff
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
hola frank,quiero convertir esto en 'int' txtnombre.Text = buscar.usuarioseleccionado.Nombre; de esta manera txtclave.text=?????,id;
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.
hola cuando capturo los datos del gridview en todos los textbox se despliega el primer campo de la tabla en todos los textbox
hola necesito ayuda la funcion dgvBuscar no funciona no la reconoce el lenguaje porque ojala me puedan ayudar gracias
hola tambn tienes el video de como cuenta el dinero un cajero
hola para saber si tambien tiene el codigo de como cuenta los billetes un cajero para entregarlos
disculpa el DataSource no me lo reconoce me podrias explicar el por que?
como conecto la tabla de mysql en el form ?
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.
clase clientes colocar public
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
Hola!
Puede ser que el textbox no lo ha nombrado así: txtTelefono y txtApellido.
La otra seria que revise la ubicación de la linea de código pueda ser que no esta ubicado igual que en el vídeo.
Saludos
brou y la base de datos
Acá puede encontrar todo el proceso amigo:
http://bit.ly/32h0zKx
Muy buenos los videos,,explicados y claros..mis felicitaciones
Que bueno que la conexión C# y MySQL funciono a la perfección. Saludos