Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2012, 17:49
41b3r70
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema de filtro en Data Adapter

Hola. Estoy empezando con .net y tengo un par de dudas, a ver si podeis resolvermelas.

Realizo una conexion a una base de datos por medio de un dataadapter (creo que se dice asi). Este adaptador por lo que he entendido leyendo, lo que hace es meter en una variable llamada tabla los datos que obtengo de la base de datos.

Entonces en ese momento lo que estoy haciendo es cerrando la conexion a la base de datos y trabajando en modo desconectado, asi libero recursos del servidor y todo funciona mas rapido.

Pues aqui viene mi duda. Se como realizar un Select para obtener los datos de una base de datos. De hecho la variable tabla la lleno con todos los datos que necesito y los cargo en un listview que se llena al cargar el formulario. Pero ahora lo que quiero hacer es filtrar los registros segun lo que se rellene en unos textbox que tengo preparados a tal efecto y no se como hacerlo.

Supongo que al adaptador no se le podra enviar un segundo select. He descubierto la manera de filltrar por medio de un solo texbox con el siguiente codigo:

Código:
 
       Lst_HistoricoFabricacion.Items.Clear()

        For i As Integer = 0 To Tabla.Rows.Count - 1
            If (Tabla.Rows(i).Item("Referencia").ToString) = Txt_ReferenciaHistoricoFabricacion.Text Then
                Dim item As ListViewItem
                item = New ListViewItem(Tabla.Rows(i).Item("Referencia").ToString)
                'Agrego los demas datos a los SubItems de item
                item.SubItems.Add(Tabla.Rows(i).Item("Lote").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Nº_HR").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Cant_Inicial").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Fecha_Inicio").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Cant_Fin").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Fecha_Fin").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Obs_Produccion").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Obs_Pedido_Material").ToString)
                item.SubItems.Add(Tabla.Rows(i).Item("Reg").ToString)
                'Agrego el item a la colección de listViewItem's de Lst_Operaciones.
                Lst_HistoricoFabricacion.Items.Add(item)
            End If
        Next (i)

Pero el problema que no se resolver es como filtrar por varios campos a la vez. Ya que si filtro por el primero, si uso este codigo para el segundo me va a borrar los datos del primer filtro y me va a dejar solo los que coincidan con el segundo texbox. Hay alguna manera de solucionar esto o tengo que trabajar directamente con la base de datos sin utilizar un daptador por medio de un command??