C# - Conexão com os principais SGBD atuais via ADO .NET


Neste artigo eu vou mostrar (novamente) como você pode efetuar a conexão (apenas a conexão) 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 também vejo essa pergunta nos Fóruns, então resolvi de forma direta, simples e objetiva mostrar como fazer isso usando a linguagem C#.

Para começar eu vou indicar um link onde você vai encontrar as strings de conexão 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 conexão, selecionar as informações 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 formulário padrão 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 código para acessar o banco de dados no evento Click do botão 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 conexão, uma instrução 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 possíveis formas de se conectar com o banco de dados usando ADO .NET, não é a melhor nem a pior é uma das formas de fazer a conexão:

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 conexão com o MSAccess
    string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dados\Northwind.mdb;";
    //Abre a conexão
    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 referência 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 conexão
    conn = new MySqlConnection(strConn);
    conn.Open();
    string mSQL = "Select * from Estoque";
    //definindo o comando para a conexão a instrução 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 conexão com o SQL Server
    string strConn = @"Server = .\sqlexpress;Database = NorthWind; Integrated Security = SSPI;";
    //Abre a conexão
    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);
    }
}

 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 referência 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 instrução SQL e a conexão  	       		      
     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 instrução SQL e a conexão  	    
       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...

Referências:


José Carlos Macoratti