Início Rápido: Usar o .NET (C#) para se conectar e consultar dados no Banco de Dados do Azure para PostgreSQL – servidor único
APLICA-SE A: Banco de Dados do Azure para PostgreSQL — Servidor Único
Importante
O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. Recomendamos fortemente que você atualize para o Banco de Dados do Azure para PostgreSQL – Servidor flexível. Para obter mais informações sobre a migração para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, confira O que está acontecendo com o Banco de Dados do Azure para PostgreSQL Servidor Único?.
Este guia de início rápido demonstra como se conectar a um banco de dados do Azure para PostgreSQL usando aplicativo C#. Ele mostra como usar instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados. As etapas neste artigo pressupõem que você está familiarizado com o desenvolvimento usando C# e que começou recentemente a trabalhar com o Banco de Dados do Azure para PostgreSQL.
Pré-requisitos
Para este início rápido você precisa:
Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
Criar um Banco de Dados do Azure para PostgreSQL servidor único usando o portal do Azure
ou a CLI do Azure se ainda não tiver um.Com base em se você está usando o acesso público ou privado, conclua UMA das ações abaixo para habilitar a conectividade.
Ação Método de conectividade Guia de instruções Configurar regras de firewall Público Portal
CLIConfigurar Ponto de Extremidade de Serviço Público Portal
CLIConfigurar link privado Privados Portal
CLIInstale o SDK do .NET para sua plataforma (Windows, Ubuntu Linux ou macOS).
Instale o Visual Studio para criar seu projeto.
Instale o pacote NuGet Npgsql no Visual Studio.
Obter informações de conexão
Obtenha as informações de conexão necessárias para se conectar ao Banco de Dados do Azure para PostgreSQL. Você precisa das credenciais de logon e do nome do servidor totalmente qualificado.
- Faça logon no Portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
- Selecione o nome do servidor.
- No painel Visão Geral do servidor, anote o Nome do servidor e Nome de logon do administrador do servidor. Se você esquecer sua senha, também poderá redefini-la nesse painel.
Etapa 1: conectar e inserir dados
Use o código a seguir para se conectar e carregar os dados usando instruções SQL CREATE TABLE e INSERT INTO. O código usa a classe NpgsqlCommand com o método:
- Open() para estabelecer uma conexão com o banco de dados PostgreSQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteNonQuery() para executar os comandos de banco de dados.
Importante
Substitua os parâmetros Host, DBName, User e Password pelos valores que você especificou quando criou o servidor e o banco de dados.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresCreate
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin@mydemoserver";
private static string DBname = "mypgsqldb";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0};Username={1};Database={2};Port={3};Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("DROP TABLE IF EXISTS inventory", conn))
{
command.ExecuteNonQuery();
Console.Out.WriteLine("Finished dropping table (if existed)");
}
using (var command = new NpgsqlCommand("CREATE TABLE inventory(id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER)", conn))
{
command.ExecuteNonQuery();
Console.Out.WriteLine("Finished creating table");
}
using (var command = new NpgsqlCommand("INSERT INTO inventory (name, quantity) VALUES (@n1, @q1), (@n2, @q2), (@n3, @q3)", conn))
{
command.Parameters.AddWithValue("n1", "banana");
command.Parameters.AddWithValue("q1", 150);
command.Parameters.AddWithValue("n2", "orange");
command.Parameters.AddWithValue("q2", 154);
command.Parameters.AddWithValue("n3", "apple");
command.Parameters.AddWithValue("q3", 100);
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows inserted={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Etapa 2: Ler dados
Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL SELECT. O código usa a classe NpgsqlCommand com o método:
- Open() para estabelecer uma conexão com o PostgreSQL.
- CreateCommand() e ExecuteReader() para executar os comandos de banco de dados.
- Read() a fim de avançar para os registros nos resultados.
- GetInt32() e GetString() para analisar os valores do registro.
Importante
Substitua os parâmetros Host, DBName, User e Password pelos valores que você especificou quando criou o servidor e o banco de dados.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresRead
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin@mydemoserver";
private static string DBname = "mypgsqldb";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("SELECT * FROM inventory", conn))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(
string.Format(
"Reading from table=({0}, {1}, {2})",
reader.GetInt32(0).ToString(),
reader.GetString(1),
reader.GetInt32(2).ToString()
)
);
}
reader.Close();
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Etapa 3: Atualizar dados
Use o código a seguir para conectar-se e atualizar os dados usando uma instrução SQL UPDATE. O código usa a classe NpgsqlCommand com o método:
- Open() para estabelecer uma conexão com o PostgreSQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteNonQuery() para executar os comandos de banco de dados.
Importante
Substitua os parâmetros Host, DBName, User e Password pelos valores que você especificou quando criou o servidor e o banco de dados.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresUpdate
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin@mydemoserver";
private static string DBname = "mypgsqldb";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("UPDATE inventory SET quantity = @q WHERE name = @n", conn))
{
command.Parameters.AddWithValue("n", "banana");
command.Parameters.AddWithValue("q", 200);
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows updated={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Etapa 4: Excluir dados
Use o código a seguir para conectar-se e excluir os dados usando uma instrução SQL DELETE.
O código usa a classe NpgsqlCommand com o método Open() para estabelecer uma conexão com o banco de dados PostgreSQL. Em seguida, o código usa o método CreateCommand(), define a propriedade CommandText e chama o método ExecuteNonQuery () para executar os comandos do banco de dados.
Importante
Substitua os parâmetros Host, DBName, User e Password pelos valores que você especificou quando criou o servidor e o banco de dados.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresDelete
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin@mydemoserver";
private static string DBname = "mypgsqldb";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("DELETE FROM inventory WHERE name = @n", conn))
{
command.Parameters.AddWithValue("n", "orange");
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows deleted={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Limpar os recursos
Para limpar todos os recursos usados durante este guia de início rápido, exclua o grupo de recursos usando o seguinte comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes