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
"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 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