Você está na página 1de 10

Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

Pesquisar

Entenda o site Tecnologias Revistas Cursos Pocket vídeos Fórum Serviços Publicar Compre Créditos Loja Virtual Assine

Bem vindo a DevMedia! LOGIN: SENHA: Esqueci minha senha Cadastre-se

dê seu feedback post favorito


Você está em: canal .net
Conectando em uma base de dados Firebird com C# Publicidade
O Firebird é um dos melhores SGDBs atualmente, neste artigo você ficará sabendo como se conectar a este poderoso
banco de dados usando a linguagem de programação C#

91 0 Curtir 6

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
Estatísticas #
comerciais, e devo dizer que até a data atual não passei por nenhuma “saia justa”.

Favorito: 9 vez(es)
Comentários: 1

Para realizar esta conexão utilizaremos o Firebird .NET Data Provider que pode ser obtido Feedback:
diretamente no site do Firebird, no final do artigo será apresentado o endereço do Utilidade: 2 0
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!! Serviços

Inclua um comentário

Adicionar aos Favoritos


No Visual Studio 2008 crie um novo projeto [Ctrl + Shift + N] Visual C#/Windows/
Marcar como lido/assistido
Windows Forms Application, e mude o nome do projeto para ConectFirebird.
Incluir anotação pessoal (ajuda)

Dê seu voto para este post

Versão para impressão

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


1 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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.

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


2 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


3 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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.

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


4 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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..

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


5 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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:

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


6 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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.

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


7 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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:

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


8 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

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!!

Carlos Timoshenko Rodrigues Lopes


Evangelista Java/Linux, porém já trabalhei (por longos anos) com C, Delphi, VB, Clipper (saudades!! kk) dentre outras liguagens
e tecnologias, também com variados bancos de dados, de XBase à Oracle. Atualmente sou analista de sistemas na PDCase,
empresa mineira, e estou trabalhando no escritório de ...

1 COMENTÁRIO

Guilherme Maia Da Silva


Muito bom este artigo quem escreveu está de parabéns me ajudou muito a enteder a forma de
trabalhar com firebird e C#!!!
:]
[há +1 ano] - Responder

cursos relacionados posts em sequência últimos do autor

Curso online - Construindo aplicações com Smart Client

Curso online - Introdução ao .NET Framework

Curso online - Criando uma aplicação Web completa

Curso online - Criando uma aplicação client/server no Visual Studio 2005

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)


9 de 10 13/03/2013 14:23
Conectando em uma base de dados Firebird com C# http://www.devmedia.com.br/conectando-em-uma-base-de-dados-fireb...

Administração do Firebird/InterBase

[Ver todos]

DevMedia
Curtir

6.984 pessoas curtiram DevMedia.


DevMedia | Anuncie | Fale conosco
Hospedagem web por Porta 80 Web Hosting

2013 - Todos os Direitos Reservados a web-03


Plug-in social do Facebook

10 dePrint
10 to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) 13/03/2013 14:23

Você também pode gostar