Mostrando postagens com marcador C#. Mostrar todas as postagens
Mostrando postagens com marcador C#. Mostrar todas as postagens

domingo, 18 de setembro de 2011

C# - Adicionando, Editando e Deletando dados com SQLite

Boa Noite!
Seguindo o artigo da ultima postagem, uma vez que temos uma tabela criada já podemos começar a inserir dado edita-los e posteriormente excluí-los.
Então vamos para a pratica, considerando  que já possuímos o banco de dados criado, a tabela CLIENTE criada e a conexão com o banco aberta, vamos adicionar o primeiro registro a nossa tabela, antes disso vamos relembrar a estrutura da tabela cliente e quais os comandos para inserir dados nela.

Tabela Cliente:
CREATE TABLE CLIENTE (cliId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, cliNome TEXT NOT NULL, cliEmail TEXT NOT NULL)

Para inserir um dado nesta tabela vamos utilizar o comando INSERT:
INSERT INTO CLIENTE (cliNome, cliEmail) VALUES ("Diego Bittencourt de Oliveira", "dbo.oliveira@gmail.com")

Observe que não foi definido um cliId, pois este é definido pelo próprio SQLite, sendo que isto é definido na criação da tabela onde o campo cliId foi definido como “AUTOINCREMENT”, logo o código do cliente será atribuído automaticamente.

Em C# os comandos seriam assim:
objCommand.CommandText = "INSERT INTO CLIENTE (cliNome, cliEmail) VALUES (@cliNome, @cliEmail )";
objCommand.Parameters.Add(new SQLiteParameter("@cliNome", "Diego Bittencourt de Oliveira"));
objCommand.Parameters.Add(new SQLiteParameter("@cliEmail", "dbo.oliveira@hotmail.com"));
objCommand.ExecuteNonQuery();

Uma vez que se queira editar este registro recém criado acima, se utiliza o comando UPDADE:
UPDATE CLIENTE SET cliNome="Diego Bittencourt de Oliveira", cliEmail="diego_b_oliveira@hotmail.com" WHERE cliId=1

Obs: a expressão “WHERE cliId=1” indica que somente vamos alterar o registro que for identificado pela chave primaria 1, eu sei que a chave do nosso registro é 1 poque foi o primeiro a ser inserido na tabela CLIENTE que criei como exemplo.
Outra observação seria que no comando update eu poderia apenas modificar uma ou outra variável do registro, assim eu poderia especificar somente a variável que foi alterada sendo que as demais não teriam necessidade de aparecer no comando update.

Em C# os comandos para alterar o registro seriam assim:
objCommand.CommandText = " UPDATE CLIENTE SET cliNome=@cliNome,  cliEmail=@cliEmail WHERE cliId=@cliId”;
objCommand.Parameters.Add(new SQLiteParameter("@cliNome", "Diego Bittencourt de Oliveira"));
objCommand.Parameters.Add(new SQLiteParameter("@cliEmail", "diego_b_oliveira@hotmail.com"));
objCommand.Parameters.Add(new SQLiteParameter("@cliId", 1));
objCommand.ExecuteNonQuery();

Bom agora somente nos falta ver como deletar o nosso registro da tabela cliente, para isso em SQL existe um comando chamado DELELE, que deleta um registro ou mais registros conforme for especificado o comando.
Por exemplo um DELETE pode deletar todos os registros que forem pertencentes a uma determinada cidade ou até mesmo deletar de uma cadastro de dependentes todos os dependentes que forem maiores de 18 anos, no nosso caso vamo deletar o registro 1 do nosso cadastro de clientes:
DELETE FROM CLIENTE WHERE cliId=@cliId

Em C# os comandos para deletar o registro seriam assim:
objCommand.CommandText = "DELETE FROM CLIENTE WHERE cliId=@cliId";
objCommand.Parameters.Add(new SQLiteParameter("@cliId", 1));
objCommand.ExecuteNonQuery();

Bom basicamente seria isso que gostaria de mostrar neste artigo, no próximo artigo veremos como selecionar os dados inseridos em uma tabela de um banco de dados SQLite.

quarta-feira, 14 de setembro de 2011

C# - Conexão com o SQLite

Boa Tarde!

Hoje vamos começar a ver alguma coisa sobre o SQLite na pratica, utilizando o componente desenvolvido para o Visual Studio  (C++, Vb.net ou C#) disponível no site do System.Data.Sqlite, sendo que este componente incorpora a biblioteca do SQLite 3 em seu código fonte, ou seja, não existe dependência da DLL do SQLite.
No site do System.Data.Sqlite existe um Vídeo que mostra a integração do componente System.Data.Sqlite com o Visual Studio.
Nos artigos vamos supor que já tenha sido criado um projeto com Visual Studio C# com referencia a DLL do System.Data.Sqlite.
Vamos mostrar neste artigo como fazer a string de conexão com banco de dados SQLite:

String de conexão Básica

Data Source =Arquivo; Version =3;

Onde:
Data Source =Arquivo – é o arquivo do banco de dados, sendo que se o arquivo conter somente o nome do arquivo o componente System.Data.Sqlite vai considerar que a localização do arquivo será no mesmo  diretório de onde se encontra a DLL do componente System.Data.Sqlite se encontra (ex: Data Source =”banco.db”;), porém se for especificado o caminho do arquivo logicamente que o System.Data.Sqlite vai procurar o arquivo no caminho especificado.
Version =3 – indica a versão do motor do banco de dados, ou seja, a versão do código fonte puro do SQLite original, sendo que o System.Data.Sqlite é um componente que da ao SQLite as funcionalidades do ADO.NET.

String de conexão usando UTF16

Data Source = Arquivo; Version =3; UseUTF16Encoding =True;

String de conexão especificando senha de Acesso

Data Source = Arquivo; Version =3; Password =senha;

Onde:
Password =senha – “senha” especifica a senha de acesso ao banco de dados (ex: Password= “123mudar”).

String de conexão para abrir o banco de dados no modo de somente leitura

Data Source = Arquivo; Version =3; Read Only =True;

String de conexão para criar um novo banco de dados

Data Source = Arquivo; Version =3; New =True;

String de conexão para não criar um novo banco de dados

Data Source = Arquivo; Version =3; New =False;

String de conexão indicando que o banco possui um formato comprimido

Data Source = Arquivo; Version =3; Compress =True;

Normalmente eu utilizo a rotina abaixo para criar um conexão com meu banco de dados :

SQLiteConnection objConnection; // Objeto de com o arquivo do banco de dados
StringBuilder strConnection = new StringBuilder();// String de com o arquivo do banco de dados
// Busco o Diretório de onde minha aplicação esta sendo executada
string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
// pego o caminho de onde a aplicação esta sendo executada concateno o diretório com o nome do
// arquivo do banco de dados
path = path + @"\BaseDados.db";
// Comesso a montar a String de Conexão definindo o Data Source
strConnection.Append("Data Source=BaseDados.db;");
// Definindo a versão
strConnection.Append("Version=3;");
// Verifico se o arquivo do banco de dados existe para criar ou não um novo banco de dados
if (File.Exists(path))
    strConnection.Append("New=False;");
else
    strConnection.Append("New=True;");
// Defino que quero o arquivo em um formato comprimido para economizar espaço em disco
strConnection.Append("Compress=True;");
// adiciono ao objeto de conexão a string de conexão formada
objConnection= new SQLiteConnection(strConnection.ToString());
// Abro o banco de dados
objConnection.Open();

Nas próximas postagens veremos como enviar comandos SQL para o banco de dados SQLite para que possamos ver melhor a performance deste excelente banco de dados.

segunda-feira, 12 de setembro de 2011

SQLite

Boa Noite!


Vamos Inaugurar o blogue com a primeira de algumas postagens sobre esta biblioteca escrita em Linguagem C, que implementa um poderoso banco de dados amplamente utilizado nos dias em hoje em diversos softwares já consagrados como por exemplo o  navegador Google Crome, estando também implementado nativamente nas bibliotecas do SDK QT, uma poderosa biblioteca de desenvolvimento C++, sendo que não podemos nos esquecer do Sistema Operacional Android, que em sua SDK também implementa nativamente as bibliotecas do SQLite.
A biblioteca SQLite, basicamente implementa um banco de dados em um arquivo, onde ele lê e escreve todas as informações que são submetidas e requeridas através da Linguagem SQL.
O uso desta biblioteca é recomendado quando não se tem a necessidade dos incontáveis recursos de um Gerenciador de Banco de dados Convencional como o SQL Server, Oracle e Mysql por exemplo.

Sendo que o SQLite é recomentado para aplicações onde:
  •  Sites (com menos de cem mil requisições por dia);
  •  Dispositivos e sistemas embarcados;
  • Aplicações desktop;
  •  Ferramentas estatísticas e de análise;
  • Aprendizado de banco de dados;
  • Implementação de novas extensões à SQL.

O SQLite não é recomendado para aplicações onde:
  • Sites com muitos acessos;
  • Grande quantidade de dados (maior que algumas dúzias de gigabytes);
  • Sistemas com grande concorrência;
  • Aplicações cliente/servidor.

Vejamos algumas características do SQLite:
  •  Software livre/domínio público e Multiplataforma;
  •   Mecanismo de armazenamento seguro com transações ACID;
  •  Não necessita de instalação, configuração ou administração;
  • Implementa a maioria do SQL92;
  • O Banco de Dados é guardado em um único arquivo;
  • Suporta bases de dados acima de 2 terabytes;
  • Sem dependências externas.

O Site do Desenvolvedor do SQLite se encontra no link abaixo:

Nas próximas postagens vamos ver como implementar SQLite junto de aplicações desenvolvidas com C# e mais adiante Android.