Hola. Gracias jhonjairo00 por tu interes. He conseguido solucionarlo despues de darle muchas vueltas.
Lo que yo queria hacer era cargar todos los datos de la tabla mediante una sola conexion a la BBDD y que luego todos los filtros que se hicieran, no requiriesen de mas conexiones. Mas que nada porque la tabla contiene bastantes registros y al estar los filtros colocados en los eventos textchanged de los textbox, se ralentizaba un poco el tema. De ahi que quisiera usar un adptador y filtrar sobre el para no realizar mas conexiones.
Al final lo he solucionado asi:
Código:
Private Sub FiltrarDatos()
If Tabla.Rows.Count = 0 Then
Exit Sub
End If
Dim StrFiltro As String = Nothing
Dim FiltroCompleto As String = Nothing
If Txt_ReferenciaHistoricoFabricacion.Text <> "" Then
If StrFiltro = "" Then
StrFiltro = StrFiltro & " Referencia= '" & Txt_ReferenciaHistoricoFabricacion.Text & "'"
Else
StrFiltro = StrFiltro & " and Referencia= '" & Txt_ReferenciaHistoricoFabricacion.Text & "'"
End If
End If
If Txt_HRHistoricoFabricacion.Text <> "" Then
If StrFiltro = "" Then
StrFiltro = StrFiltro & " Nº_HR= '" & Txt_HRHistoricoFabricacion.Text & "'"
Else
StrFiltro = StrFiltro & " and Nº_HR= '" & Txt_HRHistoricoFabricacion.Text & "'"
End If
End If
.............
FiltroCompleto = StrFiltro
Dim Filtro As New DataView(Tabla)
Filtro.RowFilter = FiltroCompleto
Dim i As Integer
Dim Lista As ListViewItem = Nothing
Dim fila As DataRowView
Lst_HistoricoFabricacion.Items.Clear()
For Each fila In Filtro
For i = 0 To Lst_HistoricoFabricacion.Columns.Count - 1
If i = 0 Then
Lista = Lst_HistoricoFabricacion.Items.Add(fila(i).ToString)
Lista.Tag = fila
Else
Lista.SubItems.Add(fila(i).ToString)
End If
Next
Next
Seguramente haya una forma mejor de hacerlo pero a mi me ha funcionado asi. Gracias otra vez