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