Anda di halaman 1dari 6

ER I O R P

E
G

T UT

DA

OS

UP

IN S T I

G IC O

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PE D R
DE
LL O C

MANTENIMIENTO Y FILTRADO DE REGISTROS


ESCRIBIR EL SIGUIENTE CDIGO FUENTE:
Imports System.Data.SqlClient
Public Class Form1
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
Private cn As SqlConnection
Private ds As DataSet
Private da As SqlDataAdapter
Private dr As DataRow
Private dt As DataTable
Private estado As String
Private pa, tot, col, fil As Integer
Private comando As SqlCommandBuilder
' Private srt As String
Private BindingSource1 As Windows.Forms.BindingSource = New BindingSource
Private Sub Aplicar_Filtro()
' filtrar por el campo nombre
Dim ret As Integer = Filtrar_grdClientes("Nombres", TextBox1.Text.Trim, BindingSource1, grdClientes, 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

ER I O R P

E
G

T UT

DA

OS

UP

IN S T I

G IC O

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PE D R
DE
LL O C

Function Filtrar_grdClientes(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
Dim filtro As String = String.Empty
' Seleccionar la opcin
Select Case Opcion_Filtro
Case e_FILTER_OPTION.CADENA_QUE_COMIENCE_CON
filtro = "like '" & texto.Trim & "%'"
Case e_FILTER_OPTION.CADENA_QUE_NO_COMIENCE_CON
filtro = "Not like '" & texto.Trim & "%'"
Case e_FILTER_OPTION.CADENA_QUE_NO_CONTENGA
filtro = "Not like '%" & texto.Trim & "%'"
Case e_FILTER_OPTION.CADENA_QUE_CONTENGA
filtro = "like '%" & texto.Trim & "%'"
Case e_FILTER_OPTION.CADENA_IGUAL
filtro = "='" & texto.Trim & "'"
End Select
' Opcin para no filtrar
If Opcion_Filtro = e_FILTER_OPTION.SIN_FILTRO Then
filtro = String.Empty
End If
' armar el sql
If filtro <> String.Empty Then
filtro = "[" & Columna & "]" & filtro
End If
' asigar el criterio a la propiedad Filter del BindingSource
BindingSource.Filter = filtro
' enlzar el datagridview al BindingSource
DataGridView.DataSource = BindingSource.DataSource
' retornar la cantidad de registros encontrados
Return BindingSource.Count
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
Return 0
End Function

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

ER I O R P

E
G

T UT

DA

OS

UP

IN S T I

G IC O

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PE D R
DE
LL O C

Private Const cs As String = "Data Source=CENCACI\DSI;" & "Integrated Security=True;" & "Initial Catalog=BD_Prueba"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cn = New SqlConnection
cn.ConnectionString = "Data Source=CENCACI\DSI;Initial Catalog=BD_Prueba;Integrated Security=True"
da = New SqlDataAdapter("SELECT * FROM Clientes", cn)
comando = New SqlCommandBuilder(da)
ds = New DataSet()
cn.Open()
da.Fill(ds, "Clientes")
cn.Close()
' asignar el dataset al DataGridView
grdClientes.DataSource = ds
grdClientes.DataMember = "Clientes"
VerDatos()
Try
' Inicializar la conexin y abrir
Using cn As SqlConnection = New SqlConnection(cs)
cn.Open()
' Inicializar DataAdapter indicando el sql para recuperar
'los registros de la tabla
Dim da As New SqlDataAdapter("SELECT * FROM Clientes", cn)
Dim dt As New DataTable ' crear un DataTable
' llenarlo
da.Fill(dt)
' enlazar el DataTable al BindingSource
BindingSource1.DataSource = dt
' agregar las opciones al combobox
With (ComboBox1)
'cargar los items de opciones para filtrar
.Items.Add("No filtrar")
.Items.Add("Que comience con")
.Items.Add("Que No comience con")
.Items.Add("Que contenga")
.Items.Add("Que No contenga")
.Items.Add("Que sea igual")
.DropDownStyle = ComboBoxStyle.DropDownList
.SelectedIndex = 1
End With
End Using

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

ER I O R P

E
G

T UT

DA

OS

UP

IN S T I

G IC O

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PE D R
DE
LL O C

' errores
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub

Private Sub VerDatos()


' Capturar total de celdas
tot = Me.grdClientes.GetCellCount(DataGridViewElementStates.Selected)
dr = Me.ds.Tables("Clientes").Rows(Me.pa)
If tot > 0 Then
'Capturar datos
fil = Me.grdClientes.SelectedCells(pa).RowIndex.ToString
'Capturar columna seleccionada
col = Me.grdClientes.SelectedCells(pa).ColumnIndex.ToString
'mostrar celda seleccionada
Me.TxtId_Cliente.Text = Me.grdClientes.Item(col, fil).Value
Me.TxtNombres.Text = Me.grdClientes.Item(col + 1, fil).Value
Me.TxtApellidos.Text = Me.grdClientes.Item(col + 2, fil).Value
Me.TxtDNI.Text = Me.grdClientes.Item(col + 3, fil).Value
End If
End Sub
Private Sub grdClientes_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
grdClientes.CellContentClick
VerDatos()
grdClientes.PerformLayout()
End Sub
Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuevo.Click
LimpiaDatos()
Me.TxtId_Cliente.Text = ""
'sumar nuevo Id_Cliente
TxtId_Cliente.Text = "C00" & Me.grdClientes.RowCount
End Sub
Private Sub LimpiaDatos()
Me.TxtNombres.Text = ""
Me.TxtApellidos.Text = ""
Me.TxtDNI.Text = ""
Me.TxtNombres.Focus()

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

ER I O R P

E
G

T UT

DA

OS

UP

IN S T I

G IC O

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PE D R
DE
LL O C

End Sub
Private Sub BtnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGrabar.Click
If estado = "Actualizar" Then
If MsgBox("deseas modificar el registro?", MsgBoxStyle.YesNo, "Aviso") = MsgBoxResult.Yes Then
dr = Me.ds.Tables("Clientes").Rows(Me.fil)
dr("Codigo") = Me.TxtId_Cliente.Text
dr("Nombres") = Me.TxtNombres.Text
dr("Apellidos") = Me.TxtApellidos.Text
dr("DNI") = Me.TxtDNI.Text
estado = ""
End If
Else
If MsgBox("Deseas grabar el registro?", MsgBoxStyle.YesNo, "Aviso") = MsgBoxResult.Yes Then
dr = Me.ds.Tables("Clientes").NewRow()
dr("Codigo") = Me.TxtId_Cliente.Text
dr("Nombres") = Me.TxtNombres.Text
dr("Apellidos") = Me.TxtApellidos.Text
dr("DNI") = Me.TxtDNI.Text
Me.ds.Tables("Clientes").Rows.Add(dr)
End If
End If
da.Update(ds, "Clientes")
End Sub

Private Sub BtnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnModificar.Click


estado = "Actualizar"
Me.TxtNombres.Focus()
End Sub

Private Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEliminar.Click


dr = Me.ds.Tables("Clientes").Rows(Me.fil)
dr.Delete()
dt = Me.ds.Tables("Clientes").GetChanges(DataRowState.Deleted)
Me.da.Update(dt)
Me.ds.Tables("Clientes").AcceptChanges()
VerDatos()
End Sub

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

ER I O R P

E
G

T UT

DA

OS

UP

IN S T I

G IC O

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PE D R
DE
LL O C

Private Sub BtnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSalir.Click


Me.Close()
End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged


Aplicar_Filtro()
End Sub
End Class

Prof. Roni Aguilar Huaccha

San Pedro de Lloc

Anda mungkin juga menyukai