Você está na página 1de 6

Conectando o C# ao banco de dados Firebird

Bom dia pessoal. Hoje falaremos de um assunto que muitos dos meus
alunos me pediram, a conexo com o banco de dados Firebird no C#.
A linguagem C# possui suporte nativo bancos de dados da Microsoft, porem
existem dezenas de bancos de dados que so muitos usados no mercado e
que no fazem parte do suporte da linguagem. Entre eles temos o Firebird.
FireBird
O Firebird um sistema de banco de dados OpenSource gerido pela
fundao FirebirdSQL. Todo seu cdigo pode ser baixado diretamente e
modificado pelos seus usurios.
O Firebird nasceu baseando-se no cdigo de uma outra plataforma de banco
de dados chamada InterBase, criada pela Borland (a mesma criadora do
Delphi), que, aps inmeros erros em seu produto, acabou por abandon-lo,
deixando seu cdigo para uma associao de programadores que acabou
por arrum-lo e lanar a primeira verso do Firebird.
Preparando para conectar o Firebird com o C#
Como dito anteriormente o Visual C#, criado pela Microsoft, no possui
suporte para bancos de dados que no sejam criados pela mesma. Porem
existe um software que deve ser instalado na maquina onde voc for
programar e em todas as maquinas que executaram o programa, o nome
deste software : FirebirdClient, segue link do site oficial:
http://www.firebirdsql.org/en/additional-downloads/ , no esquea que deve
baixar a verso do ADO.NET.
Baixe o programa e o instale, com ele as DLLs necessrias para o C# se
conectar sero adicionadas para seu uso.
Como programar o C#
Ao iniciar o projeto, devemos acrescentar a biblioteca instalada a ele para
que possamos utiliz-la. Para isso devemos:

Clicar na guia PROJECT e escolher a opo ADD REFERENCE.


Na janela que abriu clicamos na aba BROWSE.
Devemos encontrar a DLL que instalamos para acrescentar ao
projeto, no caso seu nome :
FIREBIRDSQL.DATA.FIREBIRDCLIENT.DLL, que esta na pasta da
instalao do pacote, que no meu caso(Windows 8): C:\Program
Files (x86)\FirebirdClient 2.0 como na imagem abaixo:

Feito isso a referencia foi adicionada ao C#, agora devemos adicionar a


biblioteca ao nosso cdigo, utilizando o comando using, como no exemplo
abaixo:
using FirebirdSql.Data.FirebirdClient;

Como na imagem abaixo:

Fazendo o que descrevemos acima, temos tudo para trabalhar com o banco
de dados FireBird.

Conectando ao banco de dados.


Seguindo com nosso projeto, j executamos todos os passos para sua
preparao, agora iremos conectar ao arquivo que corresponde ao nosso
banco de dados.
Para conectarmos, devemos criar a varivel que ira conter a string de
conexo, e a varivel que conter a conexo em si, sendo ela a responsvel
pela execuo de todos os comandos relativos ao banco de dados. Como no
exemplo abaixo:
private string strConn = @"DataSource=localhost;
Database=C:\arq.fdb; username= SYSDBA; password = masterkey";
//string de conexao. preencher os dados minimos para conectar
FbConnection conn;
//variavel que representa a conexao.

Lembrando que na string de conexo devemos colocar os dados de nosso


sistema, como indica a baixo:

DataSource: Endereo do servidor, caso esteja na mesma maquina,


deixar o localhost.
Database: Endereo do arquivo do banco de dados dentro do sistema.
Username: O usuario local para acessar o banco, por padro temos:
SYSDBA.
Password: A senha usada para acessar o banco, por padro temos:
masterkey.

Banco de dados.
Antes de prosseguir, iremos criar um banco de dados e uma tabela para que
efetuemos os testes, no cabe a este tutorial explicar como fazer isso, ento
segue abaixo a construo que adotaremos para nosso exemplo.
Banco: arq.fdp
Tabela Teste
Num
1
2
3

Nome
Bruno
Gabriel
Caio

Indo para o programa.


Bom, agora vamos montar um programa bsico que contenha os elementos
principais para a conexo e execuo de todas as funes bsicas possveis.
Comearemos com uma tela, como no exemplo abaixo:

Vamos verificar a programao de cada um dos botes acima, porem


veremos primeiro as declaraes superiores do programa.
Declaraes superiores:
private string strConn = @"DataSource=localhost;
Database=C:\arq.fdb; username= SYSDBA; password = masterkey";
FbConnection conn;

Temos basicamente duas funes neste trecho, a primeira com a string de


conexo, como visto acima, e a segunda, declarando uma varivel conn
do tipo FbConnection para armazenar (instanciar) a conexo com o banco
de dados.
Boto Conectar.
private void bt_conectar_Click(object sender, EventArgs e)
{
conn = new FbConnection(strConn);
lbl_status.Text="CONECTADO";
}

Este boto tem a funo simples de conectar, utilizando a varivel conn


declarada anteriormente. Note que no comando temos como parmetro a
varivel strConn que tem armazenado dentro de si a string de conexo
com o banco.
Boto listar.
private void btn_listar_Click(object sender, EventArgs e)
{
FbCommand cmd = new FbCommand("SELECT * FROM teste", conn);
FbDataAdapter DA = new FbDataAdapter(cmd);
DataSet DS = new DataSet();
conn.Open();
DA.Fill(DS, "teste");

dataGridView1.DataSource = DS;
dataGridView1.DataMember = "teste";
conn.Close();

}
O boto listar possui uma construo simples e bem fcil de manipular,
onde na primeira linha, temos como parmetros o comando SQL e a varivel
de conexo com o banco. Na segunda e na terceira linha criamos as
variveis que armazenaro o resultado, na quarta abrimos a conexo, e
executamos o cdigo SQL. Na quinta na sexta e na stima linha, separamos
os dados e jogamos eles dentro da lista, o Datagridview. E na oitava linha
fechamos a conexo.
Boto Inserir:
private void bt_inserir_Click(object sender, EventArgs e)
{
string sqlIncluir = "INSERT INTO teste (num, nome)"
+ "Values (" + textBox1.Text + ", ' " + textBox2.Text + " ')";
FbCommand cmd = new FbCommand(sqlIncluir, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}

Na primeira linha criamos a string que conter o SQL de insero, com seus
campos e as referencias as caixas de texto. Nas linhas seguintes
preparamos o comando, abrimos a conexo, executamos o SQL e fechamos
a conexo.
Segundo boto de listar:
Este boto tem a funo de pegar uma informao especifica do banco e
mostrar ela na tela, com este mtodo temos um controle muito mais firme
sobre os dados.
private void bt_list_unico_Click(object sender, EventArgs e)
{
FbCommand cmd = new FbCommand("SELECT * FROM teste WHERE num=" +
txt_listar.Text, conn); //executa o SQL
FbDataAdapter DA = new FbDataAdapter(cmd);
DataSet DS = new DataSet();
conn.Open();
DA.Fill(DS, "teste");
conn.Close();
lbl_nome.Text = DS.Tables["teste"].Rows[0][1].ToString();
conn.Close();
}

Na primeira linha temos a criao da string SQL j inserida dentro da classe


de conexo. Na segunda e terceira linha preparamos para executar
utilizando o DataSet. Na quarta linha abrimos a conexo, na sexta

executamos o comando e na stima fechamos a conexo.Ate aqui


praticamente igual ao listar geral, porem agora ao invs de buscarmos os
dados diretamente para a lista, pegaremos apenas um registro da tabela e
jogaremos no em um label. Atentando que os parmetros [0][1], simbolizam
em sua ordem, linha e coluna, logo estou retornando a primeira linha que foi
retornada na consulta(linha 0) e a segunda coluna(coluna 1), que o campo
nome.

E com isso temos um programa bsico e funcional para executarmos nossas


operaes com banco Firebird, gostaria de salientar que este mtodo e
muito parecido com o mtodo utilizado com o MS SQL entre outros.

Abraos