 VB .NET -  Deletando linhas em DataGridView usando CheckBox
 
VB .NET -  Deletando linhas em DataGridView usando CheckBox|  | Neste artigo vou mostrar como podemos deletar linhas em um controle DataGridView usando o CheckBox e os recursos da ADO .NET em uma aplicação Windows Forms usando a linguagem VB .NET. |  | 
Neste artigo vamos recordar como incluir um checkbox em um datagridview e como usar a seleção no checkbox para excluir linhas do grid usando ADO .NET.
Você geralmente usa o controle CheckBox no DataGridView para indicar uma seleção de um item ou definir um estado como verdadeiro ou falso.
Para o exemplo deste artigo eu vou acessar a tabela Alunos do banco de dados Escola criado no SQL Server.
A estrutura da tabela Alunos pode ser vista na figura abaixo e ao lado temos o script SQL par criar a tabela:
|  | USE [Escola] GO CREATE TABLE [dbo].[Alunos]( [Id] [int] IDENTITY(1,1) NOT NULL, [Nome] [nvarchar](50) NOT NULL, [Idade] [int] NULL, [Sexo] [nvarchar](50) NULL, [Email] [nvarchar](150) NULL, [Nascimento] [datetime] NULL, CONSTRAINT [PK_Alunos] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO | 
Este artigo é um artigo para iniciantes e nele vamos realizar as seguintes tarefas :
então vamos ao que interessa...
Recursos Usados
Criando o projeto Windows Forms
Abra o VS 2015 Community e crie um novo projeto (File-> New Project) usando a linguagem VB .NET e o template Windows Forms Application.
Informe um nome a seu gosto. Eu vou usar o nome Vbnet_DgvCheckbox;
Selecione o formulário Form1.vb e partir da ToolBox inclua os seguintes controles:
1 Panel - Dock = Bottom
1 DataGridView - name= DgvDados
3 Buttons - btnCarregar, btnDeletar e btnEncerrar
Disponha os controles conforme o leiaute da figura abaixo:
|  | 
Inclua uma referência a System.Configuration no seu projeto via menu Add Reference;
Selecione a guia Assemblies e marque o System.Configuration;

A seguir declare os seguintes namespaces no formulário:
	Imports System.Configuration
	Imports System.Data.SqlClient
	
	Abra  o arquivo App.Config e 
	declare a string de conexão para acessar o banco de dados conforme abaixo:
	(A sua string de conexão vai ser diferente da 
	usada no exemplo)
| <?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <connectionStrings>
    <add name="ConexaoSQLServer" connectionString="Data Source=MACORATTI;Initial Catalog=Escola;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>
 | 
No início da declaração do formulário inclua o código a seguir onde definimos a variável strConexao usada para acessar o banco de dados:
Private strConexao As String = ConfigurationManager.ConnectionStrings("ConexaoSQLServer").ConnectionString
Definindo o código do formulário Form1
1- No evento Click do botão de comando - Carregar Dados - inclua o código abaixo:pelo usuário:
|   Private Sub btnCarregar_Click(sender As Object, e As EventArgs) Handles btnCarregar.Click        AdicionarCheckBoxDataGridView()
        Dim sql As String = "SELECT * FROM Alunos"
        Dim tabela As New DataTable()
        Using con = New SqlConnection(strConexao)
            Using cmd = New SqlCommand(sql, con)
                Using da = New SqlDataAdapter(cmd)
                    da.Fill(tabela)
                    dgvDados.DataSource = tabela
                End Using
            End Using
        End Using    End Sub | 
Este código selecionamos(SELECT) todos os registros da tabela Alunos, preenche um DataTable e exibe os dados no controle grid.
2- Código do método AdicionarCheckBoxDataGridView()
| Private Sub AdicionarCheckBoxDataGridView()
        Dim col As New DataGridViewCheckBoxColumn() With
        {
           .Name = "Selecione as linhas a Deletar"
        }
        dgvDados.Columns.Add(col)
End Sub | 
O código acima incluir controles CheckBox no DataGridView.
Deletando as linhas do grid
No evento Click do botão - Deletar - temos o código a seguir:
| Private Sub btnDeletar_Click(sender As Object, e As EventArgs) Handles btnDeletar.Click
        Dim row As New DataGridViewRow()
        Dim i As Integer = 0
        While i < dgvDados.Rows.Count
            row = dgvDados.Rows(i)
            If Convert.ToBoolean(row.Cells(0).Value) Then
                Dim id As Integer = Convert.ToInt16(row.Cells(1).Value)
                DeletaLinhaDoGrid(id)
                dgvDados.Rows.Remove(row)
                i -= 1
            End If
            i += 1
        End While
 End Sub | 
Neste código percorremos as linhas do DataGridView e verificamos quais checkbox estão marcados, obtendo o respectivo valor da célula correspondente ao Id do aluno para chamar o método DeletaLinhaDoGrid() passando o id.
O código do método DeletaLinhaDoGrid é visto a seguir:
| Private Sub DeletaLinhaDoGrid(ByVal id As Integer)         Dim sql As String = "DELETE FROM Alunos WHERE Id = " & id
        Using con = New SqlConnection(strConexao)
            con.Open()
            Using cmd = New SqlCommand(sql, con)
                cmd.ExecuteNonQuery()
            End Using
            con.Close()
        End Using
    End Sub | 
Neste código definimos a consulta SQL para deletar(DELETE) da tabela Alunos o registro com id igual ao passado para o método.
Executando o projeto e selecionado um checkbox no datagridview, ao clicar no botão Deletar veremos que o mesmo será excluído da tabela e removido do grid:
|  | 
Pegue 
	o projeto completo aqui :   
 Vbnet_DgvCheckbox.zip
	
	Vbnet_DgvCheckbox.zip
"Em quem (Jesus) temos a redenção pelo seu sangue, a remissão das ofensas, segundo as riquezas da sua graça," Efésios 1:7
| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique 
	e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? | 
  
    Gostou ?   Compartilhe no Facebook
Compartilhe no Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter
  
  
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
C# - DataGridView - Salvando o conteúdo e realizando ... - Macoratti
VB .NET - Incluindo um CheckBox em um DataGridView - Macoratti
VB .NET - Paginação de dados no DataGridView com ... - Macoratti