VB .NET -
CRUD com o SQLite no VS 2013 - III
![]() |
Esse artigo continua vou mostrar como acessar o banco de dados SQLite e realizar as operações CRUD usando o VS 2013 e a linguagem VB .NET. Nossa tarefa será criar um banco de dados usando a ferramenta SQLIte Administrator e realizar as operações CRUD no projeto criado na primeira parte do artigo. |
Na segunda parte do artigo eu inclui um novo projeto chamado
DAL à
nossa solução e neste projeto criei a classe AcessoDB
onde defini os métodos que irei usar para acessar e
persistir os dados no banco de dados SQLite.
Neste exemplo eu não vou criar uma camada de negócios (BLL) para deixar o exemplo mais simples, e, deixo isso como um exercício para você fazer. Basta incluir um novo projeto e criar uma classe que chame os métodos da camada DAL.
Dessa forma iremos acessar a camada de acesso a dados
diretamente da camada de apresentação, o que não é uma boa prática, mas se
justifica pela simplicidade do exemplo e pela preguiça do autor.
Para que possamos enxergar a camada DAL temos que incluir uma referência no projeto Windows Forms. Clique com o botão direito do mouse sobre o projeto Acessando_SQLite e no menu suspenso clique em Add -> Reference;
Selecione a guia Projects e marque o projeto DAL conforme mostra a figura abaixo:
Agora podemos chamar os métodos da camada DAL a partir da camada de apresentação. (Lembre-se que isso fere o princípio da separação das responsabilidades)
Vamos agora abrir o nosso projeto Windows Forms onde já temos o formulário criado e implementar as funcionalidades para realizar o CRUD na tabela Contatos.
Alterando, Excluindo e Incluindo dados no SQLite
Com o formulário form1.vb aberto vamos iniciar incluindo uma declaração ao
projeto DAL no formulário:
Imports DAL
Nota: A simples referência à camada de acesso a dados na camada de apresentação já é uma indicação de algo não 'cheira bem' no seu código.
A seguir vamos definir uma variável que irá conter uma instrução SQL para selecionar todos os registros da tabela Contatos:
Dim selecionarDados As String = "Select * from Contatos"
Nota: Se você criar a camada de negócios deverá remover todos as instruções SQL da camada de apresentação para esta camada.
Agora vamos definir no evento Load do formulário o código para carregar os dados da tabela Contatos e exibir no DataGridView do formulário:
Private Sub form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dgvContatos.DataSource = AcessoDB.getRegistro(selecionarDados)
End Sub
|
Vamos criar um método chamado LimparControles para limpar as caixas de texto do formulário :
Private Sub limparControles(control As Control)
For Each textBox As Control In control.Controls
If TypeOf textBox Is TextBox Then
DirectCast(textBox, TextBox).Text = String.Empty
End If
Next
End Sub
|
Também vamos definir no evento Cell_Enter do DataGridView o código que permite obter os dados de uma linha selecionada no grid exibindo os valores das células nas caixas de texto do formulário:
Private Sub dgvContatos_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles dgvContatos.CellEnter
Try
txtID.Text = dgvContatos.Rows(e.RowIndex).Cells(0).Value
txtNome.Text = dgvContatos.Rows(e.RowIndex).Cells(1).Value
txtEmail.Text = dgvContatos.Rows(e.RowIndex).Cells(2).Value
Catch ex As Exception
End Try
End Sub
|
Agora em cada evento Click de cada um dos botões de comando vamos definir o código que realizar a respectiva funcionalidade descrita no título do botão.
Em cada implementação estamos definindo o respectivo comando SQL , definindo os parâmetros a serem usados e chamando o respectivo método da classe AcessoDB() para realizar a operação. A seguir chamamos novamente o método para atualizar a exibição no DataGridView.
1 - Alterar
Private Sub btnAlterar_Click(sender As Object, e As EventArgs) Handles btnAlterar.Click
If txtNome.Text = String.Empty OrElse txtEmail.Text = String.Empty Then
MessageBox.Show("Informe os valores para Id, nome e email do contato a ser alterado")
Return
Else
If (MessageBox.Show("Deseja alterar os dados deste contato ?", "Alterar", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes) Then
Try
Dim sqlAlterar As String = "Update Contatos set nome = @nome, email=@email where Id=@id"
Dim campos As String() = {"@Nome", "@Email", "@Id"}
Dim valores As String() = {txtNome.Text, txtEmail.Text, txtID.Text}
AcessoDB.Alterar(campos, valores, sqlAlterar)
dgvContatos.DataSource = AcessoDB.getRegistro(selecionarDados)
Catch ex As Exception
MessageBox.Show("Erro " + ex.Message)
End Try
End If
End If
End Sub
|
2- Incluir
Private Sub btnIncluir_Click(sender As Object, e As EventArgs) Handles btnIncluir.Click
If txtNome.Text = String.Empty OrElse txtEmail.Text = String.Empty Then
MessageBox.Show("Informe os valores para nome e email do contato.")
Return
Else
If (MessageBox.Show("Deseja incluir este Contato ?", "Incluir", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes) Then
Try
Dim sqlInsert As String = "Insert into Contatos (nome,email) values (@Nome,@Email)"
Dim campos As String() = {"@Nome", "@Email"}
Dim valores As String() = {txtNome.Text, txtEmail.Text}
AcessoDB.Salvar(campos, valores, sqlInsert)
dgvContatos.DataSource = AcessoDB.getRegistro(selecionarDados)
Catch ex As Exception
MessageBox.Show("Erro " + ex.Message)
End Try
End If
End If
End Sub
|
3- Excluir
Private Sub btnExcluir_Click(sender As Object, e As EventArgs) Handles btnExcluir.Click
If txtID.Text = String.Empty Then
MessageBox.Show("Selecione um contato para excluir.")
Return
Else
If (MessageBox.Show("Confirma exclusão deste registro ?", "Excluir", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes) Then
Try
Dim sqlDelete As String = "Delete from Contatos Where Id = @Id"
Dim campos As String() = {"Id"}
Dim valores As String() = {txtID.Text}
AcessoDB.Deletar(campos, valores, sqlDelete)
dgvContatos.DataSource = AcessoDB.getRegistro(selecionarDados)
Catch ex As Exception
MessageBox.Show("Erro " + ex.Message)
End Try
End If
End If
End Sub
|
4- Sair
Private Sub btnSair_Click(sender As Object, e As EventArgs) Handles btnSair.Click
If (MessageBox.Show("Deseja encerrar a aplicação ?", "Sair", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes) Then
Application.Exit()
End If
End Sub
|
Executando o projeto e realizando algumas operações iremos obter o seguinte resultado:
Neste exemplo mostrei como podemos acessar e usar um banco de dados SQLite na plataforma .NET usando o Visual Studio 2013 Express e a linguagem VB .NET.
Você pode incrementar o projeto criando a camada de acesso a dados, refinando o tratamento de erros, implementando outras funcionalidades como Localizar dados dos contatos, etc.
Pegue o projeto completo aqui:
Acessando_SQLite.zip (sem as referências ao
SQLite,Entity Framework)
Falou-lhes, pois, Jesus outra vez, dizendo: Eu sou a luz do mundo; quem me segue
não andará em trevas, mas terá a luz da vida.
João 8:12
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 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
VB .NET - Usando o Banco de dados SQLite - 1 - Macoratti.net