Foros del Web » Programación para mayores de 30 ;) » .NET »

Filtrar datos en un datagrid

Estas en el tema de Filtrar datos en un datagrid en el foro de .NET en Foros del Web. Que tal gente de este foro me encuentro con un pequeño problemilla eh creado una vista maestro-detalle en visual .net el problema va cuando solo ...
  #1 (permalink)  
Antiguo 06/03/2012, 19:11
Avatar de omar190  
Fecha de Ingreso: septiembre-2008
Mensajes: 191
Antigüedad: 15 años, 7 meses
Puntos: 4
Filtrar datos en un datagrid

Que tal gente de este foro me encuentro con un pequeño problemilla eh creado una vista maestro-detalle en visual .net el problema va cuando solo quiero ver las ventas que realizo una caja y el detalle de cada venta al realizar esta consulta no se puede realizar porque los detalles pasan todos de todas las ventas y me marca error de claves. Algun consejo de como pudiera realizar esta consulta, este es el codigo que estoy usando para dihca vista:

mysqlCon = New MySqlConnection(strConex)
Dim dtVenta As New MySqlDataAdapter("SELECT IdVenta,Fecha FROM ventas ",mysqlCon)
Dim dtDetalle As New MySqlDataAdapter("SELECT IdDetalle,IdVenta,IdProducto FROM detalleventa" mysqlCon)

DS = New DataSet()

mysqlCon.Open()

dtVenta.Fill(DS, "ventas")
dtDetalle.Fill(DS, "detellaventa")

mysqlCon.Close()

DS.Relations.Add("Ver Detalle", DS.Tables("ventas").Columns("IdVenta"), DS.Tables("detalleventas").Columns("IdVenta"))

Me.dgVistaMaestro.DataSource = DS.Tables("ventas")

Hasta aqui todo va vien se muestran la ventas (todas de todas las cajas) y sus detalles

Si en la consulta sql pongo una condicion para filtrar solo de cierta caja de esta forma
WHERE IdCaja=1;

Y al realizar la relacion maraca error porque solo se filtartaron las ventas de esa caja y en los detalles estan todos de todas las ventas y todas las cajas, existe alguna forma de realizar este filtrado una ves cargada la informacion en el datagrid
  #2 (permalink)  
Antiguo 07/03/2012, 07:38
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Filtrar datos en un datagrid

Hola omar190 sí se puede realizar un filtrado a datos cargados a un Dataset sin modificarlo y llevarlo a un Datagrid mediante un DataView, te paso a explicar el codigo que no es nada complicado :
Código vb:
Ver original
  1. Dim vista As New DataView
  2. vista.Table = datos.Tables("Agendatb")
  3. 'filtro SQL: registros que pertenescan a 1 caja
  4. vista.RowFilter = "IdCaja= " + Me.txtCaja.Text + ""
  5. 'Para ordenar el resultado
  6. vista.Sort = "IdCaja"
  7. 'Pasas el filtrado a la grilla
  8. Me.TuDataGrid.DataSource = vista
  9. 'recargar el DataGrid
  10. Me.Grid.Update()
Por ejemplo esto lo puedes colocar en el evento Click de un boton que filtra mediante un TextBox en la cual ingresas el Id de tu caja. Esto ya lo acomodas a tu necesidad. ESpero te sea de ayuda. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 09/03/2012, 14:53
Avatar de omar190  
Fecha de Ingreso: septiembre-2008
Mensajes: 191
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Filtrar datos en un datagrid

Cita:
Iniciado por Aquaventus Ver Mensaje
Hola omar190 sí se puede realizar un filtrado a datos cargados a un Dataset sin modificarlo y llevarlo a un Datagrid mediante un DataView, te paso a explicar el codigo que no es nada complicado :
Código vb:
Ver original
  1. Dim vista As New DataView
  2. vista.Table = datos.Tables("Agendatb")
  3. 'filtro SQL: registros que pertenescan a 1 caja
  4. vista.RowFilter = "IdCaja= " + Me.txtCaja.Text + ""
  5. 'Para ordenar el resultado
  6. vista.Sort = "IdCaja"
  7. 'Pasas el filtrado a la grilla
  8. Me.TuDataGrid.DataSource = vista
  9. 'recargar el DataGrid
  10. Me.Grid.Update()
Por ejemplo esto lo puedes colocar en el evento Click de un boton que filtra mediante un TextBox en la cual ingresas el Id de tu caja. Esto ya lo acomodas a tu necesidad. ESpero te sea de ayuda. Saludos!.
Gracias por la ayuda funciona bastante bien, pero ahora eh tratado de aplicar un filtro sobre una fecha de la cul solo requiro comparar mes y año pero no logro que se ejecute al mandar el filtro no acepta ninguna funcion para manejo de fechas, de que forma se pudiera hacer para comparar solo una parte e la fecha, con fechas completas no hay ningu problema funciona bien, estoy usando mysql como servidor de datos.

Etiquetas: datagrid, filtrar, net, sql, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:40.