Conexão com bases de dados relacionais
Este tutorial mostra como conectar aplicações C# a bancos de dados SQL Server, MySQL e PostgreSQL usando ADO.NET, com exemplos práticos para cada caso.
Conceitos Básicos
- O ADO.NET utiliza provedores de dados específicos para cada tipo de base de dados.
- Cada provedor oferece classes próprias para a conexão (
SqlConnection
,MySqlConnection
, etc.). - A string de conexão é essencial e deve ser adaptada à base de dados escolhida.
- Utilize sempre o bloco
using
para garantir o fecho da conexão de forma automatica.
Conexão com base de dados SQL Server
Deve incluir uma referência ao pacote System.Data.SqlClient
(já incluso em muitos projetos .NET).
Exemplo:
using System.Data.SqlClient;
string connectionString = "Server=SERVIDOR;Database=BASE;User Id=UTILIZADOR;Password=SENHA;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
// Comandos SQL aqui
Console.WriteLine("Conexão com SQL Server estabelecida!");
}
Substitua SERVIDOR
, BASE
, UTILIZADOR
e SENHA
pelos dados do seu ambiente.
Conexão com base de dados MySql
Instale o pacote NuGet: MySql.Data
(MySQL Connector/NET).
Exemplo:
using MySql.Data.MySqlClient;
string connectionString = "Server=SERVIDOR;Database=BASE;Uid=UTILIZADOR;Pwd=SENHA;";
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
conn.Open();
// Comandos SQL aqui
Console.WriteLine("Conexão com MySQL estabelecida!");
}
Substitua SERVIDOR
, BASE
, UTILIZADOR
e SENHA
pelos dados do seu ambiente.
É obrigatório adicionar a referência ao conector MySQL no projeto.
Conexão com base de dados PostgreSQL
Instale o pacote NuGet: Npgsql
(Npgsql .NET Data Provider).
Exemplo:
using Npgsql;
string connectionString = "Host=SERVIDOR;Database=BASE;Username=UTILIZADOR;Password=SENHA";
using (NpgsqlConnection conn = new NpgsqlConnection(connectionString))
{
conn.Open();
// Comandos SQL aqui
Console.WriteLine("Conexão com PostgreSQL estabelecida!");
}
Substitua SERVIDOR
, BASE
, UTILIZADOR
e SENHA
pelos dados do seu ambiente.
Conexão com base de dados Oracle
Instale o pacote NuGet: ManagedDataAccess
.
Exemplo:
using Oracle.ManagedDataAccess.Client;
using (OracleConnection conn = new OracleConnection(connectionString))
{
conn.Open();
// Comandos SQL aqui
Console.WriteLine("Conexão com Oracle estabelecida!");
}
Resumo das Diferenças nas strings de conexão
Base de Dados | Parâmetro Servidor | Parâmetro Usuário | Parâmetro Senha | Observações Específicas |
---|---|---|---|---|
SQL Server | Server/Data Source | User Id | Password | Suporta autenticação integrada |
MySQL | Server | Uid | Pwd | Parâmetros como Charset , SslMode |
PostgreSQL | Host | Username | Password | Parâmetros como SSL Mode , Timeout |
Oracle | Data Source | User Id | Password | Parâmetros como Pooling , Connection Timeout |
Dicas
- Feche sempre a conexão após o uso. O bloco
using
faz isso automaticamente, mesmo em caso de exceções. - As strings de conexão podem variar conforme o provedor e o ambiente.
- Consulte a documentação oficial do provedor para detalhes avançados de configuração e pooling de conexões.
Comparativo dos Provedores
Base de Dados | Pacote/Namespace | Classe de Conexão | Exemplo de String de Conexão |
---|---|---|---|
SQL Server | System.Data.SqlClient | SqlConnection | Server=…;Database=…;User Id=…;Password=…; |
MySQL | MySql.Data.MySqlClient | MySqlConnection | Server=…;Database=…;Uid=…;Pwd=…; |
PostgreSQL | Npgsql | NpgsqlConnection | Host=…;Database=…;Username=…;Password=… |
Oracle | Oracle.DataAccess.Client | OracleConnection | Data Source=…;User Id=…;Password=…; |
Alternativamente, pode-se usar o pacote mais moderno Oracle.ManagedDataAccess.Client
para Oracle.