VB .NET - Usando o Banco de dados SQLite - 1
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.
Então esteja atento a este detalhe.
Neste artigo eu vou mostrar como usar o SQLite em uma aplicação VB .NET usando o VB 2008 Express Edition.
Preparando o terreno...
A primeira coisa a fazer é baixar o SQLite no site : http://www.sqlite.org/
A versão mais atual é a versão : Version 3.8.8.3
Para usar com outras versões do Visual Studio veja esse link: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
Mas para o Visual Studio 2008 você tem que baixar uma versão específica que vai depender também do seu Sistema operacional. Assim temos:
Dica: Usando o Nuget você pode facilitar o seu trabalho e baixar o pacote com o connector no seu projeto. (Veja este artigo .NET - Apresentando o Nuget - Macoratti.net )
Após estes
procedimentos você poderá ver no Visual Studio 2008
SP1 o SQLite como mais uma opção de fonte de dados:
|
Criando o banco de dados
Vamos usar o SQLite DataBase Browser para criar nosso primeiro banco de dados no SQLite. Abrindo o aplicativo teremos a seguinte tela inicial:
No menu File selecione New DataBase e informe o local e o nome do banco de dados que você deseja criar.
Para este exemplo eu vou criar o banco de dados Macoratti.db na pasta c:\dados;
Na janela Create Table informe o nome da tabela como Cadastro e clique no botão Add;
Na janela Add database field informe o nome do campo e o seu tipo e clique no botão Create;
A estrutura da tabela Cadastro que iremos criar vai ter a seguinte estrutura:
Com isso acabamos de criar o nosso banco de dados no SQLite. (Neste momento podemos incluir alguns dados)
Criando a aplicação VB .NET
Vamos agora criar um novo projeto do tipo Windows Forms Application no VB 2008 Express Edition com o nome CadastroSQLite;
Nosso projeto será bem simples iremos criar uma interface para poder consultar, incluir, alterar e excluir dados de um banco de dados SQLite.
Nota: Eu não estou preocupado com boas práticas nem em usar uma arquitetura em camadas meu objetivo é mostrar como realizar as operações de consulta, inclusão, alteração e exclusão no SQLite. Por isso eu vou usar o código de acesso a dados nos eventos de formulário, prática que em uma aplicação de produção não é recomendada. Considere este exemplo como um protótipo usado apenas para apresentação.
Em todas as operações vamos abrir o banco de dados e em seguida fechar a conexão com o banco de dados.
No formulário padrão form1.vb inclua um componente DataGridView (name=gdvDados) e 4 controles Buttons conforme o leiaute abaixo:
Agora vamos incluir a referência ao provedor ADO .NET para o SQLite;
No menu Project Selecione Add Reference;
Na janela Adicionar Referencia , na aba .NET , selecione a referência System.Data.SQLite e clique em OK;
Agora já podemos usar o namespace System.Data.SQLite em nosso projeto. Defina a seguir os seguintes namespaces no formulário form1.vb:
Imports System.Data.SQLite
Imports System.Data
Imports System.IO
No início do formulário devemos definir as seguintes variáveis:
Dim
sConnectionString As StringA primeira refere-se a string de conexão e a segunda é usada para obter o a identificação (id) do registro selecionado no DataGridView. Esta identificação é obtida no evento CellClick do DataGridView conforme o código abaixo:
Private Sub gdvDados_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gdvDados.CellClick If gdvDados.SelectedRows.Count > 0 Then Dim linhaAtual As DataGridViewRow = gdvDados.SelectedRows(0) id = Convert.ToInt32(linhaAtual.Cells(0).Value) End If End Sub |
Como eu vou usar dados do tipo BLOB eu vou usar funções de suporte a este recurso. Para isso vamos criar a classe Funcoes e definir o seguinte código nesta classe:
Nota: Para criar uma classe selecione no VS 2008 a opção Project -> Add Class e informe o nome da classe;
Imports System.Data.SQLite Imports System.IO Public Class Funcoes Private Shared Function BlobToImage(ByVal blob) Dim mStream As New System.IO.MemoryStream Dim pData() As Byte = DirectCast(blob, Byte()) mStream.Write(pData, 0, Convert.ToInt32(pData.Length)) Dim bm As Bitmap = New Bitmap(mStream, False) mStream.Dispose() Return bm End Function Public Overloads Shared Function ImageToBlob(ByVal id As String, ByVal filePath As String) Dim fs As FileStream = New FileStream(filePath, FileMode.Open, FileAccess.Read) Dim br As BinaryReader = New BinaryReader(fs) Dim bm() As Byte = br.ReadBytes(fs.Length) br.Close() fs.Close() 'Cria Parm Dim photo() As Byte = bm Dim SQLparm As New SQLiteParameter("@image", photo) SQLparm.DbType = DbType.Binary SQLparm.Value = photo Return SQLparm End Function Public Overloads Shared Function ImageToBlob(ByVal id As String, ByVal image As Image) Dim ms As New MemoryStream() image.Save(ms, System.Drawing.Imaging.ImageFormat.Png) 'Cria Parm Dim photo() As Byte = ms.ToArray() Dim SQLparm As New SQLiteParameter("@image", photo) SQLparm.DbType = DbType.Binary SQLparm.Value = photo Return SQLparm End Function End Class |
O formulário form1.vb do nosso protótipo deverá exibir os dados da tabela Cadastro do banco de dados SQLite Macoratti.db. Dessa forma no evento Load do formulário vamos chamar a rotina carregaDados que deverá acessar o banco de dados e exibir os registros:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load carregadados() End Sub Private Sub carregadados() try 'define string de conexão com banco de dados SQLite - Macoratti.db criado na pasta c:\dados 'usando a criptografia sConnectionString = "Data Source=c:\dados\Macoratti.db;Version=3;New=True;Compress=True;" 'abre a conexão Dim oConn As New SQLite.SQLiteConnection(sConnectionString) oConn.Open() 'define o comando SQL para retornar todos os dados da tabela Cadastro Dim daCadastro As New SQLite.SQLiteDataAdapter("Select id,nome,idade,foto From Cadastro order by id", oConn) 'define o dataset Dim ds As New DataSet("Northwind") 'define o esquema da tabela daCadastro.FillSchema(ds, SchemaType.Source, "Cadastro") 'preenche o dataset daCadastro.Fill(ds, "Cadastro") 'exibe os dados no datagridview gdvDados.DataSource = ds.Tables("Cadastro") 'fecha a conexao oConn.Close() Catch ex As Exception MsgBox("Erro ao acessar o banco de dados SQLite: " & ex.Message) End Try End Sub |
Neste singelo código, já comentado, eu apenas destaco a string de conexão usada para acessar o SQLite:
sConnectionString = "Data Source=c:\dados\Macoratti.db;Version=3;New=True;Compress=True;"
onde temos :
- Data Source - Indicando o caminho
e nome do banco de dados;
- Version - a versão usada, no nosso caso a versão 3;
- Compress - Indica que estamos usando a compactação no banco
de dados;
Para mais detalhes sobre esse assunto consulte: http://www.connectionstrings.com/sqlite
Executando o projeto iremos ver o DataGridView exibindo os dados da tabela Cadastro (os dados foram incluídos por mim previamente) conforme a figura abaixo:
Eu sei é apenas VB .NET , mas eu gosto.
Aguarde a segunda parte deste artigo onde irei mostrar como incluir, excluir e
alterar dos no SQLite:
VB .NET - Usando o Banco de dados SQLite - 2
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