Principales respuestas
CARGAR REGISTROS DE DATAGRID EN TXTBOX

Pregunta
-
Hola
Cuando selecciono la fila del datagridview, sin problema me muestra los registros que deseo en los textbox.
El problema se me presenta cuando intento filtrar por el IdOrden o Departamento.Una vez que se filtran los registros, al seleccionar la fila, ya no arroja en las cajas de texto los valores que me traía en la primera imagen, me trae otros datos.
Este es el código con el cual cargo los datos que deseo mostrar en el grid
private void Refresh2() { using (Model.PagoEntities db=new Model.PagoEntities()) { var lst = from d in db.Conceptos join e in db.Docmtoes on d.IdOrden equals e.IdDocumento select new ConceptosAdmin() { IdDocumento = e.IdDocumento, IdOrden = d.IdOrden, Proveedor = d.Proveedor, Concepto = d.Concepto1, RAD = d.RAD, Departamento = d.Departamento, FechaPreviaAut=e.FechaPreviaAut, EstatusAdmin=e.EstatusAdmin, AutPrevia_Cancela = e.AutPrevia_Cancela, ComentariosAdmin = e.ComentariosAdmin, EstatusDireccion=e.EstatusDireccion, FechaAutorizacion=e.FechaAutorizacion, Autoriza_Cancela=e.Autoriza_Cancela, ComentariosDireccion=e.ComentariosDireccion, }; DgvLista.DataSource = lst.ToList(); } }
Con esto filtro por IdOrden, pero no se como llamar a los registros del grid(codigo del private void) para que una vez filtrado el registro los mostrara en las cajas de texto.Y como no supe como, pues pense que quizas llamando un data adapter lo conseguiría.
private void textBox4_KeyUp(object sender, KeyEventArgs e) { using (Model.PagoEntities db = new Model.PagoEntities()) { con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "Select * from Conceptos where IdOrden like ('" + textBox4.Text + "%')"; cmd.ExecuteNonQuery(); DataTable Dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(Dt); DgvLista.DataSource = Dt; con.Close(); } }
Este orden que presento a continuación, son correctos para los valores que deseo mostrar en las cajas de texto.Lo hace sin problema, siempre y cuando filtre por IdOrden o Departamento.
private void DgvLista_CellClick(object sender, DataGridViewCellEventArgs e) { int index = e.RowIndex; DataGridViewRow selectedRow = DgvLista.Rows[index]; textBox1.Text = selectedRow.Cells[0].Value.ToString(); textBox4.Text = selectedRow.Cells[1].Value.ToString(); TextBox11.Text = selectedRow.Cells[3].Value.ToString(); TextBox7.Text = selectedRow.Cells[4].Value.ToString(); TextBox9.Text = selectedRow.Cells[5].Value.ToString(); }
Cualquier sugerencia se los agradecería.
- Editado MarZav lunes, 29 de junio de 2020 2:00 correccion en un texto
Respuestas
-
hola
Porque usas un LIKE para filtrar un campo que es la key de la tabla? eso esta mal se usa una coincidencia exacta cuando buscar por Id
Si usas el LIKE vas a tecuperar todos los registros que comiencen con ese numerico, y tu solo quieres uno solo que coincida con esa busqueda
Ademas estas usando linq, porque vuelves a ado.net, usa el where de linq
Operaciones básicas de consulta LINQ (C#)
int idOrden = 0; if(!int.TryParse(textBox4.Text, out idOrden)){
return; //pasara por aqui si ingreso un contenido no numerico
} var lst = from d in db.Conceptos join e in db.Docmtoes on d.IdOrden equals e.IdDocumento where d.IdOrder == idOrder //resto del linq
var concepto = lst.FirstOrDefault();
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta MarZav lunes, 29 de junio de 2020 16:59
-
Hola MarZav,
¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?
Espero su respuesta.
Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte.
Gracias por usar los foros de MSDN.
Eric Ruiz
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
- Marcado como respuesta MarZav miércoles, 1 de julio de 2020 18:50
Todas las respuestas
-
hola
Porque usas un LIKE para filtrar un campo que es la key de la tabla? eso esta mal se usa una coincidencia exacta cuando buscar por Id
Si usas el LIKE vas a tecuperar todos los registros que comiencen con ese numerico, y tu solo quieres uno solo que coincida con esa busqueda
Ademas estas usando linq, porque vuelves a ado.net, usa el where de linq
Operaciones básicas de consulta LINQ (C#)
int idOrden = 0; if(!int.TryParse(textBox4.Text, out idOrden)){
return; //pasara por aqui si ingreso un contenido no numerico
} var lst = from d in db.Conceptos join e in db.Docmtoes on d.IdOrden equals e.IdDocumento where d.IdOrder == idOrder //resto del linq
var concepto = lst.FirstOrDefault();
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta MarZav lunes, 29 de junio de 2020 16:59
-
-
Hola MarZav,
¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?
Espero su respuesta.
Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte.
Gracias por usar los foros de MSDN.
Eric Ruiz
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
- Marcado como respuesta MarZav miércoles, 1 de julio de 2020 18:50