VB .NET - CRUD com o SQLite no VS 2013 - II


 Neste artigo 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 primeira parte deste artigo eu criei um projeto chamado
Acessando_SQLite onde já definimos o formulário que será usado no projeto, conforme mostra a figura abaixo:

 

 

Vamos agora criar um banco de dados e uma tabela usando a ferramenta SQLite Administrator.

 

Lembrando que você pode obter essa ferramenta neste link : http://sqliteadmin.orbmu2k.de/

 

Criando o banco de dados e a tabela no SQLite Administrator


Abrindo o SQLite Administrator veremos o formulário principal com o menu de opções:

 

 

Para criar um novo banco de dados selecione o menu DataBase e clique Novo;

 

Será aberta uma janela para que você indique o nome e o local onde o banco de dados será criado:

 

 

Note que podemos também a versão do SQLite. No nosso exemplo estamos usando a versão SQLite3 DB.

 

Após  isso será aberta a janela exibindo o nome do banco de dados (CADASTRO) e os objetos que podemos criar neste banco de dados;

 

Para criar uma tabela clique com o botão direito sobre o item Tabelas e no menu suspenso clique em Criar Tabela;

 

 

Na janela Criar Tabela faça o seguinte:

  1. Informe o nome da tabela : Contatos;

  2. Clique no botão Adiciomnar Campo (aqui o tradutor para o português cometeu o erro na palavra adicionar)

  3. Informe o nome do campo, o tipo , o valor padrão (se  houver) e marque as opções

  4. Clique no botão Adicionar;

  5. Repita a operação para incluir mais campos;

 

 

Vamos criar a tabela Contatos com a seguinte estrutura :

Abaixo vemos os campos definidos na janela Criar Tabela:

 

 

Para criar a tabela clique no botão Criar.

 

Ao fazer isso você verá a tabela e os campos criados e para ver o script SQL clique com o botão direito sobre a tabela e a seguir clique em MOSTRAR SQL:

 

 

Você pode notar que podemos realizar outras operações como criar índices, views, Triggers, Consultas, etc. A ferramenta é bem intuitiva e fácil de usar.

 

Dessa forma temos o banco de dados Contatos.db criado na pasta c:\dados\SQLite.

 

Criando a camada de acesso a dados - DAL

 

Para não colocar o código de acesso a dados misturado com a camada de apresentação eu vou criar uma camada de acesso a dados bem simplificada.

 

Vou incluir um novo projeto chamado DAL na solução e neste projeto referenciar o SQLite usando o Nuget conforme foi descrito na primeira parte do artigo.

 

No menu FILE clique então em Add -> New Project;

 

Selecione o template Class Library e informe o nome DAL;

 

 

Faça a referência ao SQLite no projeto DAL usando o Nuget conforme indicado na primeira parte do artigo.

 

Após referenciar o SQLite vamos criar uma classe chamada AcessoDB.

 

No menu PROJECT clique em Add Class;

 

Selecione o template Class e informe o nome AcessoDB;

 

 

Agora vamos incluir o código abaixo na classe AcessoDB :

 

Imports System.Data.SQLite
Imports System.IO
Public Class AcessoDB
    Private Shared con As SQLiteConnection = Nothing
    Public Shared Function getConexao() As SQLiteConnection
        Dim strConexao As String = "Data Source=c:\dados\SQLite\Cadastro.db;Version=3;New=True;Compress=True;"
        con = New SQLiteConnection(strConexao)
        Return con
    End Function
    Public Shared Function Salvar(campos As String(), valores As String(), sqlIncluir As String) As Integer
        Dim regAfetados As Integer = -1
        Try
            getConexao()
            con.Open()
            Dim cmd As New SQLiteCommand(sqlIncluir, con)
            cmd.CommandType = CommandType.Text
            cmd.CommandText = sqlIncluir
            For i As Integer = 0 To valores.Length - 1
                cmd.Parameters.AddWithValue(campos(i), valores(i))
            Next
            regAfetados = cmd.ExecuteNonQuery()
            Return regAfetados
        Catch ex As Exception
            Throw ex
        Finally
            con.Close()
        End Try
    End Function
    Public Shared Function Alterar(campos As String(), valores As String(), sqlAlterar As String) As Integer
        Dim regAfetados As Integer = -1
        Try
            getConexao()
            con.Open()
            Dim cmd As New SQLiteCommand(sqlAlterar, con)
            cmd.CommandType = CommandType.Text
            cmd.CommandText = sqlAlterar
            For i As Integer = 0 To valores.Length - 1
                cmd.Parameters.AddWithValue(campos(i), valores(i))
            Next
            regAfetados = cmd.ExecuteNonQuery()
            Return regAfetados
        Catch ex As Exception
            Throw ex
        Finally
            con.Close()
        End Try
    End Function
    Public Shared Function Deletar(campos As String(), valores As String(), sqlDelete As String) As Integer
        Dim regAfetados As Integer = -1
        Try
            getConexao()
            con.Open()
            Dim cmd As New SQLiteCommand(sqlDelete, con)
            cmd.CommandType = CommandType.Text
            cmd.CommandText = sqlDelete
            For i As Integer = 0 To valores.Length - 1
                cmd.Parameters.AddWithValue(campos(i), Convert.ToInt32(valores(i)))
            Next
            regAfetados = cmd.ExecuteNonQuery()
            Return regAfetados
        Catch ex As Exception
            Throw ex
        Finally
            con.Close()
        End Try
    End Function
    Public Shared Function getRegistro(sql As String) As DataTable
        Dim dt As New DataTable()
        Try
            getConexao()
            con.Open()
            Dim cmd As New SQLiteCommand(sql, con)
            cmd.CommandType = CommandType.Text
            cmd.CommandText = sql
            Dim da As New SQLiteDataAdapter(cmd)
            da.Fill(dt)
            Return dt
        Catch ex As Exception
            Throw ex
        Finally
            con.Close()
        End Try
    End Function
End Class

Nesta classe temos os seguintes métodos:

A classe AcessoDB possui métodos estáticos que realizam o acesso e a persistência dos dados na tabela Contatos.

Na próxima parte do artigo irei implementar a camada de apresentação e as operações CRUD usando a camada de acesso a dados.

Jesus lhes respondeu, e disse: A minha doutrina não é minha, mas daquele que me enviou.
Se alguém quiser fazer a vontade dele, pela mesma doutrina conhecerá se ela é de Deus, ou se eu falo de mim mesmo.
Quem fala de si mesmo busca a sua própria glória; mas o que busca a glória daquele que o enviou, esse é verdadeiro, e não há nele injustiça.

João 7:16-18

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:


José Carlos Macoratti