Você está na página 1de 3

INSTITUTO DE EDUCACIN SUPERIOR PBLICO

DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Distribuida

DISEAR EL SIGUIENTE FORMULARIO:


ESCRIBIR EL SIGUIENTE CDIGO FUENTE:
Imports System.Data.SqlClient
Public Class Form2
' para filtrar con el operador Like
Enum e_FILTER_OPTION
SIN_FILTRO = 0
CADENA_QUE_COMIENCE_CON = 1
CADENA_QUE_NO_COMIENCE_CON = 2
CADENA_QUE_CONTENGA = 3
CADENA_QUE_NO_CONTENGA = 4
CADENA_IGUAL = 5
End Enum
' cadena de conexin para SQL EXPRESS en modo local
Private Const cs As String = "Data Source=CENCACI\DSI;" & "Integrated Security=True;" & "Initial Catalog=BD_Prueba"
'Instanciar el componente BindingSource
Private BindingSource1 As Windows.Forms.BindingSource = New BindingSource
Private Sub Aplicar_Filtro()
' filtrar por el campo nombre
Dim ret As Integer = Filtrar_DataGridView("nombre", TextBox1.Text.Trim, BindingSource1, DataGridView1, CType(ComboBox1.SelectedIndex, e_FILTER_OPTION))
If ret = 0 Then
' si no hay registros cambiar el color del txtbox
TextBox1.BackColor = Color.Red
Else
TextBox1.BackColor = Color.White
End If
' visualizar la cantidad de registros
Me.Text = ret & " Registros encontrados"
End Sub

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Distribuida

Function Filtrar_DataGridView(ByVal Columna As String, ByVal texto As String, ByVal BindingSource As BindingSource, ByVal DataGridView As DataGridView, Optional ByVal
Opcion_Filtro As e_FILTER_OPTION = Nothing) As Integer
' verificar que el DataSource no est vacio
If BindingSource1.DataSource Is Nothing Then
Return 0
End If
Try
End Class Private Sub Form2_Load(sender As Object, e As EventArgs) Handles
Dim filtro As String = String.Empty
MyBase.Load
' Seleccionar la opcin
Try
Select Case Opcion_Filtro
' Inicializar la conexin y abrir
Case e_FILTER_OPTION.CADENA_QUE_COMIENCE_CON
Using cn As SqlConnection = New SqlConnection(cs)
filtro = "like '" & texto.Trim & "%'"
cn.Open()
Case e_FILTER_OPTION.CADENA_QUE_NO_COMIENCE_CON
' Inicializar DataAdapter indicando el sql para recuperar
filtro = "Not like '" & texto.Trim & "%'"
'los registros de la tabla
Case e_FILTER_OPTION.CADENA_QUE_NO_CONTENGA
Dim da As New SqlDataAdapter("SELECT * FROM tutorial", cn)
filtro = "Not like '%" & texto.Trim & "%'"
Dim dt As New DataTable ' crear un DataTable
Case e_FILTER_OPTION.CADENA_QUE_CONTENGA
' llenarlo
filtro = "like '%" & texto.Trim & "%'"
da.Fill(dt)
Case e_FILTER_OPTION.CADENA_IGUAL
' enlazar el DataTable al BindingSource
filtro = "='" & texto.Trim & "'"
BindingSource1.DataSource = dt
End Select
' agregar las opciones al combobox
' Opcin para no filtrar
With (ComboBox1)
If Opcion_Filtro = e_FILTER_OPTION.SIN_FILTRO Then
'cargar los items de opciones para filtrar
filtro = String.Empty
.Items.Add("No filtrar")
End If
.Items.Add("Que comience con")
' armar el sql
.Items.Add("Que No comience con")
If filtro <> String.Empty Then
.Items.Add("Que contenga")
filtro = "[" & Columna & "]" & filtro
.Items.Add("Que No contenga")
End If
.Items.Add("Que sea igual")
' asigar el criterio a la propiedad Filter del BindingSource
.DropDownStyle = ComboBoxStyle.DropDownList
BindingSource.Filter = filtro
.SelectedIndex = 1
' enlzar el datagridview al BindingSource
End With
DataGridView.DataSource = BindingSource.DataSource
End Using
' retornar la cantidad de registros encontrados
' errores
Return BindingSource.Count
Catch ex As Exception
' errores
MsgBox(ex.Message.ToString)
Catch ex As Exception
End Try
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Sub

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Distribuida

End Try
Return 0
End Function
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Aplicar_Filtro()
End Sub

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

Você também pode gostar