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