Acciones [Actualizar y Eliminar] en base de datos SQL Compact 4.0 Parte II

Un saludos amigos programadores, en esta parte se ha implementado la eliminación de múltiples registros de una datagridview enlazada a datos, como nos referirnos a la base de datos Sql Compact 4.0 por lo tanto tomando la base de Datos "Northwind. sdf "(que incluye sql compact) le hecho unas pequeñas modificaciones que incluyen la eliminación de algunas tablas que estaban referenciadas para que se más practica.

En muchos de los casos se desea eliminar masivamente  y no fila a fila, ya que cuando se requiere eliminar mas de un registro este proceso se vuelve engorroso y cansado, en vista de este problema, he creado este algoritmo que sirve para hacer "delete" a todas las filas seleccionadas por el usuario, ya sean estas consecutivas como alternadas.

Les dejo el código del proyecto completo:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        cargar_datos() '...................habilita los botones de acciones
        btnactualizar.Enabled = True
        btnborrar.Enabled = True
    End Sub
    Sub cargar_datos() ' procedimiento para cargar los datos
        Try
            conectarse()
            Dim ds As New DataSet
            Dim dt As New DataTable
            Dim strSql As String = "SELECT* FROM PRODUCTS "
            Dim adp As New SqlServerCe.SqlCeDataAdapter(strSql, conn)
            adp.Fill(dt)
            grid.DataSource = dt
        Catch ex As Exception
            ex.ToString()
        End Try
        conn.Close()
        contar()
        Me.WindowState = FormWindowState.Maximized
    End Sub
    Sub contar() ' cuenta las filas del grid
        Dim i As Integer = grid.Rows.Count
        lblcounter.Text = "Número de items =" & i
    End Sub
    Private Sub Button2_Click_1(sender As Object, e As EventArgs)
        FormControl.ShowDialog() ' muestra el form Control
    End Sub
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnactualizar.Click
        FormControl.txtproductid.Enabled = False ' en modo edicion desabilita  el texbox que contiene la key primary
        FormControl.asignardatos() ' asigna los datos de la grid a las cajas de texto
        FormControl.btnAceptar.Text = "Actualizar" ' artilugio habilita funcion del boton actualizar
        FormControl.ShowDialog() ' por ultimo muestra el form Control
    End Sub
    Private Sub btnborrar_Click(sender As Object, e As EventArgs) Handles btnborrar.Click
        eliminarAp_Ret() ' elimina valores llamado al procedimiento
    End Sub
    Sub eliminarAp_Ret()
        Try
            If grid.Rows.Count = 0 Then
                MsgBox("No se puede eliminar, no existen registros", MsgBoxStyle.Critical)
            ElseIf MessageBox.Show("¿Esta seguro eliminar los registros seleccionados?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then
                conectarse()
                'ALGORITMO PARA OBTENER LAS FILAS SELECCIONADAS  DE UNA COLUMNA ID DETERMINADA
                Dim selectedRowCount As Integer =
      grid.Rows.GetRowCount(DataGridViewElementStates.Selected)
                If selectedRowCount > 0 Then
                    Dim i As Integer
                    For i = 0 To selectedRowCount - 1
                        '-------------OBTENER FILAS SELECCIONADAS'
                        Dim var As Integer = grid.Rows(grid.SelectedRows(i).Index).Cells("Product ID").Value
                        cmd.CommandType = CommandType.Text
                        sql = "DELETE FROM PRODUCTS WHERE [PRODUCT ID] ='" & var & "'"
                        cmd.CommandText = sql
                        cmd.ExecuteNonQuery()
                    Next
                    MsgBox("Registro eliminado satisfactoriamente", MsgBoxStyle.Exclamation)
                Else
                    MsgBox("Proceso cancelado por el usuario", MsgBoxStyle.Critical)
                End If

            End If

        Catch ex As Exception
            MsgBox("No se puede eliminar registro", vbCritical, "Error")
        End Try
        conn.Close()
        '  cargar_Ahorros()
    End Sub
    Private Sub grid_SelectionChanged(sender As Object, e As EventArgs) Handles grid.SelectionChanged
        lblselectrows.Text = "Filas Seleccionadas= " & grid.SelectedRows.Count
    End Sub
End Class



Bueno, esto es todo, espero sus buenos comentarios, y sobre todo que les sirva, nos vemos en otra entrega

Comentarios

Entradas populares de este blog

Imprimir directamente ReportViewer a impresora predeterminada

DevComponents DotnetBar 12.5.0.2

Metodo Iterativo Gauss-Seidel en Visual Basic