Você está na página 1de 8

C# - Conexo com os principais SGBD atuais via ADO .

NET
Neste artigo eu vou mostrar (novamente) como voc pode efetuar a conexo (apenas a conexo) com os principais Sistemas de gerenciadores de banco de dados (SGBD) atuais via ADO .NET usando a linguagem C#. Por que eu estou voltando mais uma vez a esse assunto ? que constantemente recebo consultas e tambm vejo essa pergunta nos Fruns, ento resolvi de forma direta, simples e objetiva mostrar como fazer isso usando a linguagem C#. Para comear eu vou indicar um link onde voc vai encontrar as strings de conexo para os principais banco de dados : http://www.connectionstrings.com/ Creio que isso j bastasse para que o problema fosse resolvido mas eu vou pegar os principais banco de dados usados e mostrar como fazer a conexo, selecionar as informaes e exibi-las em um controle DataGridView. Para todos os exemplos mostrados aqui eu usei o SharpDevelop 3.2 (O Visual C# 2008 Express dar o mesmo resultado) onde criei um projeto do tipo Windows Forms e coloquei no formulrio padro um controle tabControl, um controle DataGridView (gdvDados) para e um controle Button(btnCarregaDadosNomeBancoDados) para cada banco de dados a ser testado; Em todos os exemplos eu estou colocando o cdigo para acessar o banco de dados no evento Click do boto Carregar Dados;(recomendo que voc crie uma camada de acesso a dados) Em todos os exemplos eu estarei usando o namespace System.Data; De forma geral eu estou sempre definindo uma string de conexo, uma instruo SQL e criando um objeto Command e/ou DataAdapter para ambos e em seguida preenchendo o objeto DataTable para exibir os dados no Grid. Alerto para o fato de que estarei mostrando uma das possveis formas de se conectar com o banco de dados usando ADO .NET, no a melhor nem a pior uma das formas de fazer a conexo:

1-

Acessando o Microsoft Access

Provedor usado : Microsoft Jet OLE DB 4.0 namespace utilizado : System.Data.Oledb Banco de dados : Northwind.mdb local: c:\dados tabela: Products

void BtnCarregarDadosAccessClick(object sender, EventArgs e) { try{ //cria um DataTabale DataTable dt = new DataTable(); //define a string de conexo com o MSAccess

string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dados\Northwind.mdb;";


//Abre a conexo OleDbConnection conn = new OleDbConnection(strConn); //cria um DataAdapter selecionando os dados de um tabela do MSAccess OleDbDataAdapter da = new OleDbDataAdapter("Select * from Products", conn); //preenche o DataTable da.Fill(dt); //exibe os dados no DataGridView gdvDados.DataSource = dt.DefaultView; } catch (Exception ex) { MessageBox.Show("Erro : " + ex.Message); } }

2-

Acessando o MySQL

Provedor usado : MySQL Connector namespace utilizado : MySql.Data.MySqlClient; Banco de dados : Cadastro tabela: Estoque Obs: Incluir a referncia ao provedor MySQL.Data

void CarregarDadosMySQLClick(object sender, EventArgs e) { MySqlConnection conn = null; try { string strConn = @"Server=localhost;Database=Cadastro;Uid=root;Pwd='numsey';Connect

Timeout=30;";
//Abre a conexo conn = new MySqlConnection(strConn); conn.Open(); string mSQL = "Select * from Estoque"; //definindo o comando para a conexo a instruo SQL MySqlCommand cmd = new MySqlCommand(mSQL,conn); MySqlDataAdapter da = new MySqlDataAdapter(cmd); //preenchendo o objeto DataTable a partir do DataAdapter DataTable dt = new DataTable(); da.Fill(dt); this.gdvDadosMySQL.DataSource = dt; } catch (MySqlException msqle) { MessageBox.Show("Erro de acesso ao MySQL : " + msqle.Message,"Erro"); } finally { conn.Close(); } }

3-

Acessando o SQL Server

Provedor usado : SQL Server .NET Data Provider namespace utilizado : System.Data.SqlClient Banco de dados : Northwind.mdf tabela: Products
void BtnCarregarDadosSQLServerClick(object sender, EventArgs e) { try{ //cria um DataTabale DataTable dt = new DataTable(); //define a string de conexo com o SQL Server string strConn = @"Server = .\sqlexpress;Database = NorthWind; Integrated //Abre a conexo SqlConnection conn = new SqlConnection(strConn); //cria um DataAdapter selecionando os dados de um tabela do SQL Server SqlDataAdapter da = new SqlDataAdapter("Select * from Customers", conn); //preenche o DataTable da.Fill(dt); //exibe os dados no DataGridView gdvDadosSQLServer.DataSource = dt.DefaultView; } catch (Exception ex) { MessageBox.Show("Erro : " + ex.Message); } }

Security = SSPI;";

4-

Acessando o Firebird

Provedor usado : FireBirdClient namespace utilizado : FirebirdSql.Data.FirebirdClient; Banco de dados : EMPLOYEE.FDB local: c:\dados tabela: EMPLOYEE Obs: Incluir a referncia ao provedor FireBirdSQLData.FireBirdClient

void BtnCarregarDadosFireBirdClick(object sender, EventArgs e) { string strConn = @"DataSource=localhost; Database=C:\dados\EMPLOYEE.FDB;

UserId=SYSDBA; Pwd=masterkey";
FbConnection fbConn = new FbConnection(strConn); //define o objeto comando para a instruo SQL e a conexo FbCommand fbCmd = new FbCommand("Select * from EMPLOYEE",fbConn); try

{ fbConn.Open(); //cria um DataAdpater e preenche o DataTable FbDataAdapter fbDa = new FbDataAdapter(fbCmd); DataTable dtEmployee = new DataTable(); fbDa.Fill(dtEmployee); gdvDadosFireBird.DataSource = dtEmployee; } catch (FbException fbex) { MessageBox.Show("Erro ao acessar o FireBird " + fbex.Message,"Erro"); } finally { fbConn.Close(); } }

5-

Acessando o SQLite

Provedor usado : System.Data.SQLite.dll namespace utilizado : System.Data.SQLite; Banco de dados : MacorattiSQLite.db local: c:\dados tabela: Alunos;

void CarregarDadosSQLiteClick(object sender, EventArgs e) { try{ DataTable dt = new DataTable(); String insSQL = "select * from Alunos"; String strConn = @"Data Source=C:\dados\MacorattiSQLite.db"; SQLiteConnection conn = new SQLiteConnection(strConn); //define o objeto DataAdater para a instruo SQL e a conexo SQLiteDataAdapter da = new SQLiteDataAdapter(insSQL,strConn); //preenche o DataTable da.Fill(dt); gdvDadosSQLite.DataSource = dt.DefaultView; } catch(Exception ex) { MessageBox.Show("Erro ao acessar o SQLite " + ex.Message,"Erro"); } }

Creio que fui bem objetivo. E estamos conversados... Eu sei apenas C# mas eu gosto... Referncias:

C# - Acessando Ms Access C# - Acessando uma tabela Access C# - Acessando MySQL C# - Gerenciando um banco de dados MySQL C# - Acessando FireBird

Jos Carlos Macoratti