VB .NET - CRUD com o SQLite no VS 2013 - I
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. |
O SQLite é um banco de dados enxuto, fácil de instalar, manter e transportar e,
por estes motivos, é indicado para aplicações que não requerem um banco de dados
relacional de porte, afinal você não precisa de um "canhão para matar uma
mosca" não é mesmo ?
O
SQLite 3 é um SGBD(Sistema
de Gerenciamento de Bancos de Dados) open source incrivelmente leve, e
que funciona sem nenhuma configuração. Além disso, ele não possui um
processo servidor, existindo assim apenas um processo responsável por
ler e escrever os dados, sendo estas operações feitas diretamente no
sistema de arquivos local. Por se tratar de um SGBD sem um processo servidor, o SQLite 3 é auto contido, podendo assim ser distribuído junto com as aplicações. Na verdade, devido a sua natureza, este é um cenário de uso ideal para ele, principalmente quando a aplicação em questão não requer um SGBD mais robusto. |
Para mergulhar fundo no SQLite visite o site oficial : http://www.sqlite.org/
A seguir algumas características do SQLite:
Se você esta entusiasmado com todas essas características lembre-se que ele é indicado apenas para pequenas aplicações.
Os tipos de dados suportados pelo SQLite são: INTEGER, FLOAT, REAL, NUMERIC, BOOLEAN, TIME, DATE, TIMESTAMP, VARCHAR, NVARCHAR, TEXT E BLOB.
Um detalhe, o SQLite esta sob domínio público, e assim qualquer um pode copiar, modificar, publicar, usar, compilar, vender ou distribuir o código original do SQLite para propósitos comerciais ou não comerciais. Não há restrição alguma no SQLite.
O SQLite suporta a maior parte dos recursos da linguagem SQL padrão com algumas limitações.
Como o SQLite escreve e lê para um arquivo em um drive as únicas permissões disponíveis são as permissões de leitura e escrita para o próprio arquivo então não há como usar os comandos GRANT e REVOKE.
Para uma relação das limitações visite este link: http://www.sqlite.org/omitted.html
O SQLite dá suporte a transações ACID (Atomic, Consistent, Isolated and Durable). O que significa que uma transação no SQLite irá ocorrer completamente ou não.
Por tudo isso creio que vale a pena considerar a utilização do SQLite quando o cenário for favorável a sua utilização mas lembre-se que ele possui limitações e que isso nem sempre será possível.
Para administrar o banco de dados SQLite existem muitas ferramentas que você vai encontrar na web. Umas são pagas e outras grátis.
Neste artigo eu vou usar a ferramenta SQLIte Administrator que pode ser baixada neste link: http://sqliteadmin.orbmu2k.de/ . Ela é grátis e ainda pode ser customizada para a língua portuguesa.
Existe também o SQLite DataBase Browser - http://sourceforge.net/projects/sqlitebrowser/ que você pode usar como uma ferramenta visual para dar manutenção nos bancos de dados SQLite.
Criando o projeto no Visual Studio Express 2013
A primeira coisa que vamos fazer é criar um novo projeto no Visual Studio Express 2013 for windows desktop com o nome de Acessando_SQLite, o template Windows Forms Application e a linguagem VB .NET:
Será criado um projeto com um formulário form1.vb. Vamos incluir a partir da ToolBox os seguintes controles no formulário:
Nota: A caixa de texto txtID deve ser ter sua propriedade ReadOnly definida como True.
Disponha os controles no formulário form1.vb conforme o leiaute da figura abaixo:
Escolhendo a versão do SQLite para o seu Visual Studio por sua conta e risco
Após criar o projeto e definir o leiaute do formulário temos uma tarefa ingrata a realizar : Escolher a versão correta do SQLite para o seu Visual Studio.
Neste link : http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki estão as instruções e as versões do SQLite para cada versão do Visual Studio levando em conta a versão do .NET Framework e o seu sistema operacional (32 ou 64).
Se você não sabe qual a versão do .NET Framework corresponde à versão do seu Visual Studio veja a tabela abaixo:
Version number |
CLR version |
Release date |
Included in | Replaces | ||
---|---|---|---|---|---|---|
Development tool | Windows | Windows Server | ||||
1.0 | 1.0 | 2002-02-13 | Visual Studio .NET[4] | N/A | N/A | N/A |
1.1 | 1.1 | 2003-04-24 | Visual Studio .NET 2003[4] | N/A | 2003 | 1.0[5] |
2.0 | 2.0 | 2005-11-07 | Visual Studio 2005[6] | N/A | 2003, 2003 R2,[7] 2008 SP2, 2008 R2 SP1 | N/A |
3.0 | 2.0 | 2006-11-06 | Expression Blend[8][a] | Vista | 2008 SP2, 2008 R2 SP1 | 2.0[3] |
3.5 | 2.0 | 2007-11-19 | Visual Studio 2008[9] | 7, 8,[b] 8.1[b] | 2008 R2 SP1 | 2.0, 3.0[3] |
4.0 | 4 | 2010-04-12 | Visual Studio 2010[10] | N/A | N/A | N/A |
4.5 | 4 | 2012-08-15 | Visual Studio 2012[11] | 8 | 2012 | 4.0[3] |
4.5.1 | 4 | 2013-10-17 | Visual Studio 2013[12] | 8.1 | 2012 R2 | 4.0, 4.5[3] |
4.5.2 | 4 | 2014-05-05 | N/A | N/A | N/A | 4.0, 4.5, 4.5.1[3] |
fonte: http://en.wikipedia.org/wiki/.NET_Framework_version_history
Então para o Visual Studio 2013 rodando em um Windows 8.1 com 64 bits a versão seria obtida neste link da página: sqlite-netFx451-static-binary-bundle-x64-2013-1.0.95.0.zip
Tome cuidado para não selecionar a versão incorreta pois poderá não funcionar.
Escolhendo a versão do SQLite para o seu Visual Studio via Nuget
Se você não quer ter todo esse trabalho então use o Nuget.
Não tem o Nuget instalado ainda !!! Então pegue aqui : NuGet Package Manager
Não sabe usar o Nuget ? Então veja este artigo : .NET - Apresentando o Nuget - Macoratti.net
No menu TOOLS do Visual Studio clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution :
Na janela que será aberta no canto direito superior digite sqlite e a seguir selecione o item : System.Data.SQLite (x86/x64) e clique no botão Install.
Depois confirme e proceda à instalação do pacote no seu projeto.
Ao final você deverá visualizar as seguintes referências no seu projeto (para ver as referências clique no ícone Show All Files) :
Feito isso temos o ambiente pronto para usar o SQLite com o Visual Studio 2013.
Devemos referenciar o SQLite usando o Nuget somente no projeto no qual precisamos destes recursos.
No nosso exemplo eu vou criar um novo projeto chamado DAL (na segunda parte do artigo) e nele vou referenciar o SQLite usando o Nuget.
Criando um banco de dados e uma tabela no SQLite via código
Agora, a título de exercício, vamos criar um banco de dados e uma tabela no SQLite via código para verificar se o ambiente esta corretamente configurado.
Para isso vamos incluir um novo projeto Windows Forms em nossa solução clicando no menu FILE -> Add -> New Project;
A seguir informe o nome SQLite_CriandoDB_Tabela e clique no botão OK:
No formulário form1.vb deste projeto inclua os seguintes controles:
1 ListBox - lbDados
1 Button - btnCriarDB
Disponha os controles no formulário conforme o leiaute da figura a seguir:
A próxima etapa é incluir uma referência ao SQLite neste projeto usando o Nuget como fizemos no primeiro projeto.
Nota: Se você não desejar criar outro projeto pode fazer o teste no mesmo projeto que criamos no início do artigo que já contém as referências ao SQLite ou ainda criar uma outra solução separada para fazer o teste.
Agora, antes de continuar, vamos definir o local onde iremos criar o banco de dados SQLite em nosso sistema.
Para este exemplo eu vou criar uma pasta no drive C: chamada c:\dados\SQLite onde irei criar o banco de dados chamado Macoratti.db.
O caminho tem que existir no seu sistema de arquivos caso contrário ocorrerá um erro.
Neste banco de dados eu vou criar uma tabela chamada Clientes com dois campos :
ID do tipo INTEGER e chave primária
NOME do tipo TEXT
No código iremos usar os namespaces do SQLite e das classes de acesso a dados Comuns e do namespace das classes de IO.
Assim teremos que declarar os seguintes namespaces no formulário do projeto:
Imports System.Data.SQLite
Imports System.Data.Common
Imports System.IO
Feito isso no evento Click do botão de comando vamos incluir o código
abaixo:
Private Sub btnCriarDB_Click(sender As Object, e As EventArgs) Handles btnCriarDB.Click
'define o nome e local do arquivo SQLite
Dim arquivoDB = "C:\dados\SQLite\Macoratti.db"
'verifica se o arquivo ja existe e neste caso exclui o arquivo
If File.Exists(arquivoDB) Then
File.Delete(arquivoDB)
End If
'define a string de conexão com o arquivo Dim connString = String.Format("Data Source={0}; Pooling=false; FailIfMissing=false;", arquivoDB) Using factory = New SQLiteFactory()
'cria uma conexão
Using dbConn As DbConnection = factory.CreateConnection()
'abre o arquivo
dbConn.ConnectionString = connString
dbConn.Open()
Using cmd As DbCommand = dbConn.CreateCommand()
'cria tabela
cmd.CommandText = "CREATE TABLE IF NOT EXISTS CLIENTES (ID integer primary key, NOME text);"
cmd.ExecuteNonQuery()
'incluind dados na tabela cmd.CommandText = "INSERT INTO CLIENTES (ID,NOME) VALUES(@id,@nome)" 'definindo o primeiro parâmetro e seu valor : ID
Dim p1 = cmd.CreateParameter()
p1.ParameterName = "@id"
p1.Value = 1
'definindo o segundo parâmetro e seu valor: NOME
Dim p2 = cmd.CreateParameter()
p2.ParameterName = "@nome"
p2.Value = "Macoratti"
'incluindo os parâmetros: ID e NOME
cmd.Parameters.Add(p1)
cmd.Parameters.Add(p2)
'executando o comando
cmd.ExecuteNonQuery()
'lendo a tabela e exibindo os dados incluídos cmd.CommandText = "SELECT ID, NOME FROM CLIENTES" Using reader As DbDataReader = cmd.ExecuteReader() While reader.Read() Dim id As Long = reader.GetInt64(0) Dim nome As String = reader.GetString(1) lbDados.Items.Add(id & " " & nome) End While End Using 'libera os recursos cmd.Dispose() End Using 'fecha a conexão If dbConn.State <> ConnectionState.Closed Then dbConn.Close() End If 'libera os recursos dbConn.Dispose() factory.Dispose() End Using End Using End Sub |
O código esta comentado e mostra a criação do banco de dados Macoratti.db na pasta c:\dados\SQLite e a tabela Clientes com os campos ID e NOME.
No código também estamos incluindo um valor igual a 1 para o campo ID e Macoratti para o campo NOME e a seguir acessamos a tabela e exibimos os valores no ListBox.
Executando o projeto e clicando no botão de comando iremos obter o seguinte resultado:
Examinando o sistema de arquivos verificamos que na pasta c:\dados\SQLite temos o arquivo Macoratti.db criado:
Dessa forma verificamos que nosso ambiente já esta funcionando e que já podemos criar, acessar e usar um banco de dados SQLite.
Na segunda parte do artigo eu vou mostrar como criar um banco de dados e tabela com a ferramenta administrativa SQLite Administrator.
Eu rogo por eles (os seus discípulos); não rogo pelo mundo, mas por
aqueles que me deste, porque são teus. (oração de Jesus)
João 17:9
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