Olá apaixonados por sistemas computacionais!! E principalmente apaixonados por C#!! Um pouco cedo demais para outro artigo?!?!

 

Ontem um amigo ?telefonou-me?  (depois eu explico para ele que existem meios mais econômicos de se falar com alguém!! kk brincadeirinha :-P), sua dúvida girava em torno de como realizar a conexão com uma base de dados Firebird no C#, e é sobre isto que se trata este artigo. Bem o Firebird dispensa comentários, eu mesmo utilizo-o em projetos comerciais, e devo dizer que até a data atual não passei por nenhuma “saia justa”.

 

Para realizar esta conexão utilizaremos o Firebird .NET Data Provider que pode ser obtido diretamente no site do Firebird, no final do artigo será apresentado o endereço do download. No site você encontrará várias versões, é necessário que você instale a versão 2.5.0 Beta para .NET 3.5/2.0, um conselho que dou é para você baixar o pacote zipado com os binários e descompactar os arquivos diretamente para a pasta C:\\Windows\\Microsoft.NET\\Framework. Agora ao projeto!!

 

No Visual Studio 2008 crie um novo projeto [Ctrl + Shift + N] Visual C#/Windows/ Windows Forms Application, e mude o nome do projeto para ConectFirebird.



figura 01 – Criando o projeto.


No Solution Explorer clique com o botão direito do mouse e selecione a opção Add Reference...


figura 2 – Adicionar referencia ao projeto.

 

Na tela seguinte vá para a aba Browse e localize o arquivo Firebird.Data.FirebirdClient.dll.


figura 3 – Localizando o arquivo Firebird.Data.FirebirdClient.dll.

 

Bem agora vamos começar a programar. No Solution Explorer localize o arquivo Program.cs, eu uso este arquivo para criar minhas “VARIÁVEIS GLOBAIS” (kk), na realidade eu crio uma classe publica e estática, é só um artifício que me auxilia muito. Vejam a imagem abaixo e logo em seguida eu explicarei cada uma das alterações realizadas.

 


figura 4 – Arquivo Program.cs.

 

Vamos à explicação dos códigos acrescentados:

 

1º) Neste ponto eu estou incluindo a referência à biblioteca que nos permitirá acessar os métodos necessários para conectar com uma base Firebird.

 

2º) Esta é a classe que representará a minha conexão com o banco de dados, o motivo é fazer com que eu utilize somente uma conexão no programa por completo, não é a única forma de fazer isto,mais o artigo é teu ou é meu?? (kkk brincadeirinha!!), perceba que ela é bem simples, eu deixo de forma estática os dados referentes ao usuário, senha, banco de dados dentre outros. Você é livre para alterar/melhorar esta classe conforme suas necessidades.  Descrevendo rapidamente temos:

 

 Connection é o nome da minha classe.

 

FbConnection é o tipo de variável que realiza a conexão com o meu banco de dados.

 

FbCommandBuilder é o tipo de variável que recebe uma conexão e executa uma sentença SQL. (Ps.: esta variável não vai ser utilizada agora, mais é mais fácil eu digitar esta mensagem do que mudar a imagem. :-P), você não precisa criar esta variável.

 

Por medida de controle eu criei somente os métodos Get das variáveis fbConn e fbCmm. Logo em seguida crie um método que será responsável pela conexão com o banco de dados, acredito que o código seja auto-explicativo.

 

3º) Neste ponto eu chamo o método Connection.Active(true) para realiza a conexão com o meu banco de dados e faço um tratamento para o caso de ocorrer alguma exceção. A partir deste ponto qualquer classe do sistema poderá acessar as propriedades e os métodos da classe Connection para tratar o banco de dados.

 

4º) E finalmente eu fecho a minha conexão, lembrando que o sistema só executará esta linha quando estiver sendo finalizado.

 

Bem, agora vamos modificar o nosso formulário, adicione um componente DataGridView e mude o seu nome para “grid  e ajuste-o de modo a que se pareça com a figura a seguir.


figura 5 – Formulário da aplicação.


Vamos agora ao Firebird, use o seu gerenciador preferido, pode ser qualquer um que lhe permita realizar algumas tarefas, crie uma tabela seguindo o script abaixo.

 

CREATE TABLE "AGENDA"

(

  "ID"     INTEGER NOT NULL,

  "NOME"            VARCHAR(60) NOT NULL,

  "TELEFONE"     VARCHAR(12) NOT NULL,

 PRIMARY KEY ("ID")

);

 

Execute este scrip também, para termos dados na tabela.

 

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(01,'FULANO DOS ANZOIS','86.1111-1111');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(02,'CICRANO CELESTINO','86.2222-2222');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(03,'BELTRANO','86.3333-3333');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(04,'NINGUEM','86.4444-4444');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(05,'AQUÉM','86.5555-5555');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(06,'LULA','86.6666-6666');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(07,'COLLOR','86.7777-7777');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(08,'MÃO SANTA','86.8888-8888');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(09,'TIAO','86.9999-9999');

INSERT INTO AGENDA(ID,NOME,TELEFONE)VALUES(10,'TIRIRICA','86.0000-0000');

 

Agora voltando ao projeto, vamos criar uma classe para termos acesso a esta tabela. No Solution Explorer clique no seu projeto com o botão direito do mouse e selecione Add../Class..

  


figura 6 – Adicionando uma nova classe ao projeto.


Renomeie a classe para clAgenda.cs conforme a figura a seguir.


figura 7 – Adicionando a classe clAgenda.cs.

 

Mais um pouco de codificação:


figura 8 – Classe da tabela AGENDA.


Esta classe está bem simples, perceba que eu não realizo verificações, tipo se a tabela existe, mais como já havia dito anteriormente você pode (DEVE) criar em cima deste MODELO que estou lhes passando. Considero este código bastante trivial, por isso vou explicar somente o método Open() desta classe:

Neste método eu crio uma objeto do tipo FbCommand, logo em seguida na propriedade Connection deste objeto eu atribuo o valor passado pela chamada do método. Na propriedade CommandText eu atribuo a sentença SQL cujo método ExecuteReader() me retorna um DataReader e eu atribuo diretamente para o retorno do método.

 

Agora vá até o formulário em modo Design, selecione o formulário e no evento Load acrescente o código a seguir.


figura 9 – Código a ser acrescentado no formulário do sistema.


Vamos à uma breve descrição destas alterações:

 

1º) Eu digo ao sistema que desejo utilizar a biblioteca do Firebird.

 

2º) Eu crio um objeto do tipo clAgenda onde eu possuo as propriedades e os métodos de acesso à tabela de AGENDA.

 

3º) Finalmente eu crio um objeto do tipo DataTable que receberá o FbDataReader que é retornado no momento em que eu executo o método tblAgenda .Open(Connection.FbCnn) .

 

Bem agora podemos executar o nosso projeto e se a base de dados e a tabela AGENDA existirem e o servidor do Firebird estiver rodando (uffa!!) você verá a seguinte tela:


figura 10 – Sistema concluído e executando.

 

E pronto, agora você já pode usar o Firebird nos seus projetos para a plataforma .NET com o C#, com o modelo apresentado você poderá desenvolver um CRUD completo para sua base de dados.

 

Obs.: No endereço abaixo você obtém o Firebird .NET Data Provider utilizado neste artigo:

http://downloads.sourceforge.net/firebird/FirebirdSql.Data.FirebirdClient-2.5.0-Beta1.zip

 

 Espero que tenham gostado, estou aberto a sugestões e críticas (desde que construtivas. Ok!! :-P), podem até mesmo me solicitar artigos sobre o que desejam saber, só peço pela paciência de vocês (lembrando que outro feriado que nem este só no próximo ano :-P).

 

Até a próxima!!