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

DataGrid

Estas en el tema de DataGrid en el foro de .NET en Foros del Web. Hola. Quiza ya hayan visto este tema antes , ok ya lo busque en el foro y no encontre lo q buscaba, pero me han ...
  #1 (permalink)  
Antiguo 21/05/2005, 12:12
Avatar de grisel  
Fecha de Ingreso: diciembre-2004
Ubicación: Mexico
Mensajes: 215
Antigüedad: 19 años, 4 meses
Puntos: 0
DataGrid

Hola.

Quiza ya hayan visto este tema antes , ok ya lo busque en el foro y no encontre lo q buscaba, pero me han dado varias ideas, mi problema es que apenas voy entendiendo esto del .net pero ok les cuento trabajo en visual basic con windows forms.

En un form tengo un datagrid que me carga los clientes y sus caracteristicas existe algun commando para poder yo hacer un buscador, donde ingrese una cadena en un textbox y me busque el datagrid la primera coincidencia. Es decir cuando vaya tecleando el nombre del cliente pues se me valla apareciendo la mejor coincidencia en el grid.

Les agradecere el comentario, sugerencia, etc.

saludos y bye!
__________________
grissss :Zzz:
  #2 (permalink)  
Antiguo 21/05/2005, 13:52
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Para eso puedes utilizar la clase DataView, usando la propiedad RowFilter. Así podras cambiar la fuente de datos del DataGrid con cada filtrado que hagas.

Código:
'Este código iría en el evento TextChanged del TextBox
DataSet1.Tables("TuTabla").DataView.RowFilter = "AlgunaColumna like '%" & TextBox1.Text & "%'"
DataGrid1.DataSource = DataSet1.Tables("TuTabla").DataView
Saludos
PD. El código no está probado, posiblemente te de errores...
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 22/05/2005, 07:41
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
una pregunta sobre el Dataview.

Si tengo el Dataset lleno de datos, y luego con el Dataview filtro x registros, el dataset pierde los restantes registros?

saludos!
  #4 (permalink)  
Antiguo 22/05/2005, 08:47
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
No, el DataView representa una vista personalizada de los datos que tienes...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 22/05/2005, 09:07
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
si tengo un dataset con cientos de registros, que es más recomendable para filtrar: utilizar un dataview o sería mejor filtrar con un consulta atacando directamente a la BD?

saludos y gracias!
  #6 (permalink)  
Antiguo 22/05/2005, 12:16
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
En el caso de aplicaciones windows, en mi opinión es “mejor” que tengas todo o parte de los datos en el DataSet, ya que cada viaje a la base de datos es costoso, para lo que quieres hacer, se consumiría con cada consulta: recursos del servidor, recursos de red y naturalmente recursos del cliente; cuando todo eso pudieras haberlo hecho una o pocas veces, pero con la “desventaja” que consumiría más recursos en la computadora del cliente.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 24/05/2005, 17:31
Avatar de grisel  
Fecha de Ingreso: diciembre-2004
Ubicación: Mexico
Mensajes: 215
Antigüedad: 19 años, 4 meses
Puntos: 0
Ok Xknown

Segui el tip que me diste y pues tengo lo siguiente:

Dim ds As New DataSet
Dim ts As New DataTable
Dim dv As New DataView

Dim tb As New DataTable

ts = oUsuarios.Consultar

With dv
.Table = ds.Tables("ts")
.AllowDelete = False
.AllowEdit = False
.AllowNew = False
.RowFilter = "nombre = '% " & TxtNombre.Text & " %'"
.RowStateFilter = DataViewRowState.ModifiedCurrent
tb = dv.Table
End With

DgProductos.DataSource = tb

Funciona parte del codigo pero me perdi al enlazarlo a mi DataGrid llamado DgProductos.

se va filtrando pero no aparece nada en el grid

Mi tabla tiene los siguientes campos:

idProducto
nombre
status
fabricante
precio

y lo estoy filtrando por el nombre porq asi lo requiero, efectivamente se va filtrando pero no me muestra nada en mi grid

se que es algo sencillo pero vamos la verdad que no se que sea
__________________
grissss :Zzz:
  #8 (permalink)  
Antiguo 24/05/2005, 18:20
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Cita:
Iniciado por grisel
.RowFilter = "nombre = '% " & TxtNombre.Text & " %'"
Eso está buscando un producto con el nombre '% TuFiltro %', dudo mucho que encuentre algo o si?.

Ten en cuenta el "operador" que utilizas (=), además no debe haber ninún espacio después del primer % y antes del segundo %, si revisas el código que te envié te darás cuenta que puse con like y sin espacios (como ves no edité el primer mensaje que envié ... ), entonces tu código quedaría:
Código:
 ' ....
.RowFilter = "nombre like '%" & TxtNombre.Text & "%'"
' ...
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 26/05/2005, 11:19
Avatar de grisel  
Fecha de Ingreso: diciembre-2004
Ubicación: Mexico
Mensajes: 215
Antigüedad: 19 años, 4 meses
Puntos: 0
HOla.


Pues ya cheque los espacios y cambie el (=) por el LIKE y pues si me trae algo de hecho con (=) tambien me traia es decir como esta en el textchange entonces por cada letra que le doy me pone en el

RowFilter = "nombre like '%" & m & "%'"

pero ya al llenar mi grid no pone nada
__________________
grissss :Zzz:
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 12:08.