Hola a todos!
Estoy trabajando con una tabla en sql server, que se refleje en un gridview y poder filtrarla con varios listbox y que estos a su vez tengan selección multiple. Por ejemplo la tabla contiene los campos ID, Nombre, Direccion, Estatus y que los haya dos listbox
uno de Nombre y otro de Estatus, poder elegir varios nombres o estatus y que me los refleje en el gridview. Muchas gracias.
Saludos.
Tengo este codigo:
Private Sub cargarinfo()
Dim conn As String = "integrated security=SSPI;data source=192.168.56.1;persist security info=False;initial catalog=BaseDatos"
Dim query As String = "Select * from Proveedores"
Dim condition1 As String = String.Empty
For Each item1 As ListItem In LBNombre.Items
condition1 += If(item1.Selected, String.Format("'{0}',", item1.Value), "")
Next
If Not String.IsNullOrEmpty(condition1) Then
condition1 = String.Format(" WHERE Nombre IN ({0})", condition1.Substring(0, condition1.Length - 1))
End If
Dim condition2 As String = String.Empty
For Each item2 As ListItem In LBEstatus.Items
condition2 += If(item2.Selected, String.Format("'{0}',", item2.Value), "")
Next
If Not String.IsNullOrEmpty(condition2) Then
condition2 = String.Format(" WHERE Estatus IN ({0})", condition2.Substring(0, condition2.Length - 1))
End If
Using con As New SqlConnection(conn)
Using cmd As New SqlCommand(query & (condition1 & condition2))
Using sda As New SqlDataAdapter(cmd)
cmd.Connection = con
Using dt As New DataTable()
sda.Fill(dt)
proveedores.DataSource = dt
proveedores.DataBind()
End Using
End Using
End Using
End Using
End Sub
Protected Sub OnPageIndexChanging(sender As Object, e As GridViewPageEventArgs)
proveedores.PageIndex = e.NewPageIndex
Me.cargarinfo()
End Sub
Protected Sub Nombre_Selected(sender As Object, e As EventArgs)
Me.cargarinfo()
End Sub
pero cuando quiero buscar por medio de los dos listbox, que este seleccionado un registro o varios registros de cada uno, no me sirve, solo cuando busco uno, por ejemplo solo he seleccionado LBNombres y si me sirve.
Si selecciono algo de los dos no me sirve. Gracias por su atención.