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 (SqlConnectionMySqlConnection, 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 SERVIDORBASEUTILIZADOR 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 SERVIDORBASEUTILIZADOR 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 SERVIDORBASEUTILIZADOR 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 DadosParâmetro ServidorParâmetro UsuárioParâmetro SenhaObservações Específicas
SQL ServerServer/Data SourceUser IdPasswordSuporta autenticação integrada
MySQLServerUidPwdParâmetros como CharsetSslMode
PostgreSQLHostUsernamePasswordParâmetros como SSL ModeTimeout
OracleData SourceUser IdPasswordParâmetros como PoolingConnection 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 DadosPacote/NamespaceClasse de ConexãoExemplo de String de Conexão
SQL ServerSystem.Data.SqlClientSqlConnectionServer=…;Database=…;User Id=…;Password=…;
MySQLMySql.Data.MySqlClientMySqlConnectionServer=…;Database=…;Uid=…;Pwd=…;
PostgreSQLNpgsqlNpgsqlConnectionHost=…;Database=…;Username=…;Password=…
OracleOracle.DataAccess.ClientOracleConnectionData Source=…;User Id=…;Password=…;

Alternativamente, pode-se usar o pacote mais moderno Oracle.ManagedDataAccess.Client para Oracle.