Você está na página 1de 10

C# - Acessando FireBird em uma aplicao Windows Forms

Vou mostrar como acessar o FireBird 2.0 usando a linguagem C# em uma aplicao Windows Forms. Firebird um banco de dados relacional que oferece recursos ANSI SQL-99 que rodam no Linux, Windows e plataformas Unix. Ele oferece alta performance e uma linguagem poderosa para procedimentos e triggers. Voc pode fazer o download do FireBird em : http://www.firebirdsql.org/ Durante sua instalao, ser possvel escolher entre 2 arquiteturas distintas. Cada uma delas possui seus prs e contras, sendo que a escolha entre uma ou outra, pode variar de acordo com a situao ou a configurao do ambiente no qual o servidor Firebird ser alocado. As arquiteturas disponveis so: Classic Server e Superserver. Aps o download basta instalar seguindo as instrues. Voc deve instalar tambm o Firebird .NET Data Provider em: Data Provider for .NET Framework 2.0 (.exe) (331kb) para realizar a conexo usando a plataforma .NET. Com tudo instalado j podemos comear a criar o projeto...

Criando o projeto no SharpDevelop 2.2


Vamos criar uma nova soluo C# usando o SharpDevelop 2.2 (voc pode usar o Visual C# Express Edition) com o nome fireBirdWin atravs do menu Arquivo -> Novo -> Soluo , selecionando o Modelo Aplicao Windows.

Neste projeto eu vou mostrar


Armazenar a string de conexo no arquivo App.Config; Recuperar a string de conexo do arquivo App.Config; Como acessar FireBird atravs de uma consulta SQL; Usar o padro Singleton para obter somente uma instncia da conexo FireBird; Acessar os dados da tabela usando um DataTable ao invs de um DataSet; Exibir os dados em um controle DataGridView;

Como voc pode notar , um projeto muito simples pode nos ensinar muitas coisas... Antes de iniciar vamos incluir duas referncias no nosso projeto: 1. FirebirdSql.Data.FirebirdClient - Para termos acesso as classes de acesso a dados FireBrid; 2. System.Configuration - Para podermos acessar a string de conexo do FireBird no arquivo App.Config; Clique com o boto direito do mouse sobre o projeto e selecione Adicionar Referncia;

Em seguida selecione a referncia FirebirdSql.Data.FirebirdClient;

Ainda na mesma janela selecione a referncia System.Configuration;

Clique no boto OK; Vamos criar um arquivo App.Config para podermos armazenar a string de conexo. Clique com o boto direito do mouse sobre o projeto e selecione Adicionar -> Novo Item; Na janela Nova Arquivo , selecione Misc e App.Config e clique em Criar;

Inclua o cdigo destacado em negrito referente a string de conexo para o FireBird do nosso exemplo onde estamos acessando o banco de dados Employee com o usurio SYSDBA e a senha padro masterkey; (Voc pode alterar a senha a seu critrio); <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <!-- Example connection to a SQL Server Database on localhost. --> <!-- <add name="ExampleConnectionString" connectionString="Data Source=.;Initial Catalog=DBName;Integrated Security=True" providerName="System.Data.SqlClient" /> --> <add name="FireBirdConnectionString" connectionString="DataSource=localhost; Database=C:\dados\EMPLOYEE.FDB; UserId=SYSDBA; Pwd=masterkey" /> </connectionStrings> <appSettings> <!-- access these values via the property: System.Configuration.ConfigurationManager.AppSettings[key] --> <add key="Setting1" value="Very" /> <add key="Setting2" value="Easy" /> </appSettings>

</configuration> Vamos agora criar uma classe chamada daoFireBird onde iremos usar o padro Singleton para obter uma nica instncia da conexo com o FireBird; Clique com o boto direito sobre o projeto e selecione Adicionar -> Novo Item; A seguir selecione C# e em modelo selecione Classe informando o nome daoFirebird; A seguir digite o cdigo abaixo para esta classe: using System; using FirebirdSql.Data.FirebirdClient; using System.Configuration; namespace fireBirdWin { /// <summary> /// Usa padro Singleton para obter uma instancia do FireBird /// </summary> public class daoFireBird { private static readonly daoFireBird instanciaFireBird = new daoFireBird(); private daoFireBird(){ }

public static daoFireBird getInstancia() { return instanciaFireBird; } public FbConnection getConexao() { string conn = ConfigurationManager.ConnectionStrings["FireBirdConnectionString"].ToString( ); return new FbConnection(conn); } } } Observe que o construtor da classe marcado como private e desta forma se tentarmos usar o operador new com essa classe teremos um erro; Somente a prpria classe ter acesso a este mtodo e o que ela faz na linha de cdigo :

private static readonly daoFireBird instanciaFireBird = new daoFireBird(); usando o operador new. O atributo instanciaFireBird obtido via mtodo getInstancia que do tipo da classe; Este mtodo retornar sempre o mesmo objeto. Nota: Para saber mais sobre o padro Singleton veja o meu artigo: O padro Singleton No formulrio mainform.cs inclua um componente DataGridView e um componente MenuStrip e defina a opo Sair conforme o leiaute abaixo

Agora defina os namespaces que iremos usar neste formulrio : using using using using using using using System; System.Collections.Generic; System.Drawing; System.Windows.Forms; FirebirdSql.Data.FirebirdClient; System.Data; System.Configuration;

No evento Load do formulrio inclua o mtodo acessoFBSingleton() que ir ser usado para acessar o FireBird; void MainFormLoad(object sender, EventArgs e) { acessoFBSingleton(); }

A seguir temos o mtodo acessoFB que realiza um acesso do modo tradicional e que no ser usado no projeto. public void acessoFB() { string strConn = ConfigurationManager.ConnectionStrings["FireBirdConnectionString"].ToString( ); FbConnection fbConn = new FbConnection(strConn); FbCommand fbCmd = new FbCommand("Select * from EMPLOYEE",fbConn); try { fbConn.Open(); FbDataAdapter fbDa = new FbDataAdapter(fbCmd); DataTable dtEmployee = new DataTable(); fbDa.Fill(dtEmployee); dataGridView1.DataSource = dtEmployee; } catch (FbException fbex) { MessageBox.Show("Erro ao acessar o FireBird " + fbex.Message,"Erro"); } finally { fbConn.Close(); } } A rotina acessoFBSingleton efetua o acesso usando o padro Singleton: public void acessoFBSingleton() { using (FbConnection conexaoFireBird = daoFireBird.getInstancia().getConexao()) { try { conexaoFireBird.Open(); string mSQL = "Select * from Employee"; FbCommand cmd = new FbCommand(mSQL,conexaoFireBird); FbDataAdapter da = new FbDataAdapter(cmd);

DataTable dtEmployee = new DataTable(); da.Fill(dtEmployee); this.dataGridView1.DataSource = dtEmployee; } catch (FbException fbex) { MessageBox.Show("Erro de acesso ao MySQL : " + fbex.Message,"Erro"); } finally { conexaoFireBird.Close(); } } Aps obter a instncia do FireBird efetuamos a conexo e usando um DataAdapter preenchemos um DataTable para exibir o resultado no DataGridView;

E com isso acabamos de acessar o FireBird em uma aplicao Windows Forms usando o padro Singleton e obtendo a string de conexo do arquivo de configurao app.config. Pegue o projeto completo aqui: Referncias:

daoFireBird..zip

Comunidade Firebird de Lingua Portuguesa - Downloads http://www.firebirdsql.org/ Conexo com o FireBird 1.5

Acessando e mantendo dados no FireBird Embarcado Acessando o FireBird Criando uma conexo Genrica com banco de dados VB 2005 com Firebird - MONO no Linux VB.NET - Acessando o FireBird.

Jos Carlos Macoratti

Você também pode gostar