Início Rápido: Usar o .NET (C#) para conectar e consultar dados no servidor flexível do Banco de Dados do Azure para PostgreSQL

Este início rápido demonstra como se conectar a um servidor flexível Banco de Dados do Azure para PostgreSQL usando um aplicativo C#. Ele mostra como usar instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados. As etapas deste artigo pressupõem que você esteja familiarizado com o desenvolvimento em C# e que seja iniciante no trabalho com o Banco de Dados do Azure para PostgreSQL.

Pré-requisitos

Para este início rápido você precisa:

Obter informações de conexão

Obtenha as informações de conexão necessárias para se conectar ao servidor flexível Banco de Dados do Azure para PostgreSQL. Você precisa do nome do servidor totalmente qualificado e das credenciais de autenticação.

Use o portal do Azure:

  1. No menu à esquerda no portal Azure, selecione Todos os recursos e pesquise o servidor que você criou.

  2. Selecione o nome do servidor.

  3. No menu de recursos, selecione Visão geral.

    Captura de tela mostrando a página Visão Geral.

  4. Copie os valores mostrados como Ponto de Extremidade e Login de Administrador.

    Captura de tela mostrando os valores Ponto de Extremidade e Login de Administrador na página Visão Geral.

  5. Se você esquecer a senha da autenticação do administrador, redefina-a usando o botão Redefinir senha .

    Captura de tela mostrando o botão

Etapa 1: conectar e inserir dados

Use o código a seguir para se conectar e carregar os dados usando as instruções SQL CREATE TABLE e INSERT INTO. O código usa a classe NpgsqlCommand com estes métodos:

  • Open() para estabelecer uma conexão com o banco de dados de servidor flexível do Banco de Dados do Azure para 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";
        private static string  DBname = "postgres";
        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();
        }
    }
}

Está tendo algum problema? Fale conosco.

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 estes métodos:

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";
        private static string  DBname = "postgres";
        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();
        }
    }
}

Está tendo algum problema? Fale conosco.

Etapa 3: Atualizar dados

Use o código a seguir para se conectar ao banco de dados e atualizar os dados usando uma instrução UPDATE SQL. O código usa a NpgsqlCommand classe com os seguintes métodos:

  • Open() para estabelecer uma conexão com o servidor flexível do Banco de Dados do Azure para PostgreSQL.
  • CreateCommand() para definir a CommandText propriedade.
  • 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";
        private static string  DBname = "postgres";
        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();
        }
    }
}


Está tendo algum problema? Fale conosco.

Etapa 4: Excluir dados

Use o código a seguir para se conectar ao banco de dados e excluir dados usando uma instrução DELETE SQL.

O código usa a NpgsqlCommand classe com o método Open() para estabelecer uma conexão com o banco de dados do servidor Banco de Dados do Azure para PostgreSQL flexível. Em seguida, o código usa o método CreateCommand(), define a CommandText propriedade 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 = "postgres";
        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 início rápido, exclua o grupo de recursos usando o seguinte comando:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes