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
Publicar un comentario