Neste artigo vou mostrar como podemos usar o SQLite em uma aplicação Windows Forms realizando as operações CRUD na linguagem C#. |
Um banco de dados SQLite é um apenas um arquivo único onde as tabelas os dados, triggers, chaves primárias e estrangeiras estão todas contidas. A sua aplicação lê e escreve no banco de dados pela chamada do SQLite. Quando você realizar um SELECT ou UPDATE o SQLite lê e escreve para este arquivo.
Se você efetuar atualizações em uma transação SQL o SQLite verifica se você possui acesso exclusivo ao arquivo e você pode fazer uma cópia de segurança apenas copiando o arquivo do SQLite.
Em resumo, você pode usar o SQLite como qualquer outro banco de dados mas por trás dos panos você estará usando uma pequena livraria de código a qual esta armazenando seus dados em um arquivo.
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.
O tamanho do SQLite configurado é no máximo de 300 KB por isso ele é indicado para pequenas aplicações (portáveis) especialmente aplicações que não precisam rodar on-line onde os dados são armazenados em um arquivo local e o banco de dados trabalha sem uma conexão com internet.
Você pode obter mais informações e fazer o download do SQLite na página oficial: http://www.sqlite.org/index.html
Neste artigo vou mostrar como criar um banco de dados, SQLite, criar tabela, inserir, atualizar, excluir e acessar dados usando o SQLite.
Recursos Usados:
Criando o projeto no VS Community 2017
Abra no VS community 2017 e no menu File clique em New Project;
A seguir selecione o template Visual C# -> Windows -> Windows Forms Application e informe o nome CShp_MAC e clique em OK;
Agora abra o formulário Form1.cs e inclua os seguintes controles no formulário:
2 Panels
8 Buttons
3 Label
3 TextBox
1 DataGridView
Disponha os controles conforme o leiaute da figura abaixo:
Incluindo a referência ao SQLite no projeto
Para poder trabalhar com o SQLite temos que incluir uma referência a bibliotecas System.Data.SQLite em nosso projeto usando o Nuget.
Para isso clique no menu Tools e a seguir selecione Library Package Manager -> Manage Nuget Packages for Solution...
Selecione o pacote System.Data.SQLite, marque para instalar no projeto e clique no botão Install:
Criando a classe DalHelper
Vamos incluir no projeto uma classe chamada DalHelper (use o nome a seu gosto) e definir os métodos que vão gerenciar o SQLite.
No menu Project clique em Add Class e informe o nome DalHelper. A seguir inclua o código abaixo nesta classe:
using csharp_Sqlite.Models;
using System;
using System.Data;
using System.Data.SQLite;
namespace csharp_Sqlite
{
public class DalHelper
{
private static SQLiteConnection sqliteConnection;
public DalHelper()
{ }
private static SQLiteConnection DbConnection()
{
sqliteConnection = new SQLiteConnection("Data Source=c:\\dados\\Cadastro.sqlite; Version=3;");
sqliteConnection.Open();
return sqliteConnection;
}
public static void CriarBancoSQLite()
{
try
{
SQLiteConnection.CreateFile(@"c:\dados\Cadastro.sqlite");
}
catch
{
throw;
}
}
public static void CriarTabelaSQlite()
{
try
{
using (var cmd = DbConnection().CreateCommand())
{
cmd.CommandText = "CREATE TABLE IF NOT EXISTS Clientes(id int, Nome Varchar(50), email VarChar(80))";
cmd.ExecuteNonQuery();
}
}
catch(Exception ex)
{
throw ex;
}
}
public static DataTable GetClientes()
{
SQLiteDataAdapter da = null;
DataTable dt = new DataTable();
try
{
using (var cmd = DbConnection().CreateCommand())
{
cmd.CommandText = "SELECT * FROM Clientes";
da = new SQLiteDataAdapter(cmd.CommandText, DbConnection());
da.Fill(dt);
return dt;
}
}
catch(Exception ex)
{
throw ex;
}
}
public static DataTable GetCliente(int id)
{
SQLiteDataAdapter da = null;
DataTable dt = new DataTable();
try
{
using (var cmd = DbConnection().CreateCommand())
{
cmd.CommandText = "SELECT * FROM Clientes Where Id=" + id;
da = new SQLiteDataAdapter(cmd.CommandText, DbConnection());
da.Fill(dt);
return dt;
}
}
catch(Exception ex)
{
throw ex;
}
}
public static void Add(Cliente cliente)
{
try
{
using (var cmd = DbConnection().CreateCommand())
{
cmd.CommandText = "INSERT INTO Clientes(id, Nome, email ) values (@id, @nome, @email)";
cmd.Parameters.AddWithValue("@Id", cliente.Id);
cmd.Parameters.AddWithValue("@Nome", cliente.Nome);
cmd.Parameters.AddWithValue("@Email", cliente.Email);
cmd.ExecuteNonQuery();
}
}
catch(Exception ex)
{
throw ex;
}
}
public static void Update(Cliente cliente)
{
try
{
using (var cmd = new SQLiteCommand(DbConnection()))
{
if (cliente.Id != null )
{
cmd.CommandText = "UPDATE Clientes SET Nome=@Nome, Email=@Email WHERE Id=@Id";
cmd.Parameters.AddWithValue("@Id", cliente.Id);
cmd.Parameters.AddWithValue("@Nome", cliente.Nome);
cmd.Parameters.AddWithValue("@Email", cliente.Email);
cmd.ExecuteNonQuery();
}
};
}
catch(Exception ex)
{
throw ex;
}
}
public static void Delete(int Id)
{
try
{
using (var cmd = new SQLiteCommand(DbConnection()))
{
cmd.CommandText = "DELETE FROM Clientes Where Id=@Id";
cmd.Parameters.AddWithValue("@Id", Id);
cmd.ExecuteNonQuery();
}
}
catch(Exception ex)
{
throw ex;
}
}
}
}
|
Temos neste código 8 métodos estáticos que realizam as seguintes tarefas:
Estamos usando os recursos da ADO .NET (SQLiteConnection, SQLiteCommand,SQLiteDataAdapter) e da SQL como as instruções para incluir (INSERT INTO), atualizar (UPDATE Clientes), excluir (DELETE FROM) , criar tabela (CREATE TABLE), selecionar(SELECT).
Fique à vontade para ajustar o código e realizar outras implementações que desejar. Uma sugestão seria alterar os métodos que retornam um DataTable para retornar um objeto Cliente.
Na próxima parte do artigo vamos implementar o código do formulário para realizar as operações no SQLite.
Se dissermos que temos comunhão com ele
(Jesus), e andarmos em trevas, mentimos, e não praticamos a verdade.
Mas, se andarmos na luz, como ele na luz está, temos comunhão uns com os outros,
e o sangue de Jesus Cristo, seu Filho, nos purifica de todo o pecado.
1 João 1:6,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 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Xamarin.Forms - Criando uma aplicação com acesso a dados (SQLite ...