Conectando o C# ao banco de dados Firebird
Bom dia pessoal. Hoje falaremos de um assunto que muitos dos meus alunos me pediram, a conexão 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 são muitos usados no mercado e que não fazem parte do suporte da linguagem. Entre eles temos o Firebird.
FireBird
O Firebird é um sistema de banco de dados OpenSource gerido pela fundação FirebirdSQL. Todo seu código pode ser baixado diretamente e modificado pelos seus usuários.
O Firebird nasceu baseando-se no código de uma outra plataforma de banco de dados chamada InterBase, criada pela Borland (a mesma criadora do Delphi), que, após inúmeros erros em seu produto, acabou por abandoná-lo, deixando seu código para uma associação de programadores que acabou por arrumá-lo e lançar a primeira versão do Firebird.
Preparando para conectar o Firebird com o C#
Como dito anteriormente o Visual C#, criado pela Microsoft, não possui suporte para bancos de dados que não 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/ , não esqueça que deve baixar a versão do ADO.NET.
Baixe o programa e o instale, com ele as DLL’s necessárias para o C# se conectar serão 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 opção “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 instalação 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 código, 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 preparação, agora iremos conectar ao arquivo que corresponde ao nosso banco de dados.
Para conectarmos, devemos criar a variável que ira conter a string de conexão, e a variável que conterá a conexão em si, sendo ela a responsável pela execução 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 conexão devemos colocar os dados de nosso sistema, como indica a baixo:
DataSource: Endereço do servidor, caso esteja na mesma maquina, deixar o “localhost”.
Database: Endereço do arquivo do banco de dados dentro do sistema. Username: O usuario local para acessar o banco, por padrão temos: “SYSDBA”. Password: A senha usada para acessar o banco, por padrão temos: “masterkey”.
Banco de dados.
Antes de prosseguir, iremos criar um banco de dados e uma tabela para que efetuemos os testes, não cabe a este tutorial explicar como fazer isso, então segue abaixo a construção que adotaremos para nosso exemplo.
Banco: arq.fdp
Tabela TesteNum Nome
1 Bruno2 Gabriel3 Caio
Indo para o programa.
Bom, agora vamos montar um programa básico que contenha os elementos principais para a conexão e execução de todas as funções básicas possíveis.
Começaremos com uma tela, como no exemplo abaixo:
Vamos verificar a programação de cada um dos botões acima, porem veremos primeiro as declarações superiores do programa.
Declarações superiores:
private string strConn = @"DataSource=localhost; Database=C:\arq.fdb; username= SYSDBA; password = masterkey"; FbConnection conn;
Temos basicamente duas funções neste trecho, a primeira com a string de conexão, como visto acima, e a segunda, declarando uma variável “conn” do tipo “FbConnection” para armazenar (instanciar) a conexão com o banco de dados.
Botão Conectar.
private void bt_conectar_Click(object sender, EventArgs e) { conn = new FbConnection(strConn); lbl_status.Text="CONECTADO"; }
Este botão tem a função simples de conectar, utilizando a variável “conn” declarada anteriormente. Note que no comando temos como parâmetro a variável “strConn” que tem armazenado dentro de si a string de conexão com o banco.
Botão 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 botão listar possui uma construção simples e bem fácil de manipular, onde na primeira linha, temos como parâmetros o comando SQL e a variável de conexão com o banco. Na segunda e na terceira linha criamos as variáveis que armazenarão o resultado, na quarta abrimos a conexão, e executamos o código SQL. Na quinta na sexta e na sétima linha, separamos os dados e jogamos eles dentro da lista, o “Datagridview”. E na oitava linha fechamos a conexão.
Botão 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 inserção, com seus campos e as referencias as caixas de texto. Nas linhas seguintes preparamos o comando, abrimos a conexão, executamos o SQL e fechamos a conexão.
Segundo botão de listar:
Este botão tem a função de pegar uma informação especifica do banco e mostrar ela na tela, com este método 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 SQLFbDataAdapter 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 criação da string SQL já inserida dentro da classe de conexão. Na segunda e terceira linha preparamos para executar utilizando o DataSet. Na quarta linha abrimos a conexão, na sexta executamos o comando e na sétima fechamos a conexão.Ate aqui praticamente igual ao listar geral, porem agora ao invés de buscarmos os dados diretamente para a lista, pegaremos apenas um registro da tabela e jogaremos no em um label. Atentando que os parâmetros [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 básico e funcional para executarmos nossas operações com banco Firebird, gostaria de salientar que este método e muito parecido com o método utilizado com o MS SQL entre outros.
Abraços