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#.
(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 bancos 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á omesmo 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 coloco 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 usarei 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.
em seguida preenchendo o objeto DataTable para exibir os dados no Grid.
Alerto para o fato de que mostrarei uma das possíveis formas de se conectar com o banco de dados usando ADO .NET, não é a melhor nem a pior, é apenas uma das formas de fazer a conexão:
01. 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;DataSource=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);
}
}
02. 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();
}
}
03. 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);
}
}
04. 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();
}
}
05. 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');
}
}
Eu sei, é apenas C#, mas eu gosto...
"
Comentários