Inicio rápido: Usar .NET (C#) para conectarse y consultar datos en Azure Database for PostgreSQL: servidor flexible

En este inicio rápido se muestra cómo conectarse a un servidor flexible Azure Database for PostgreSQL mediante una aplicación de C#. Se indica cómo usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos. Los pasos de este artículo asumen que está familiarizado con el desarrollo en C# y que está empezando a trabajar con Azure Database for PostgreSQL.

Prerrequisitos

Para esta guía de inicio rápido, necesitará lo siguiente:

Obtención de información sobre la conexión

Obtenga la información de conexión necesaria para conectarse al servidor flexible Azure Database for PostgreSQL. Necesita el nombre completo del servidor y las credenciales de autenticación.

Usa el portal de Azure:

  1. En el menú izquierdo de Azure portal, seleccione Todos los recursos y busque el servidor que creó.

  2. Seleccione el nombre del servidor.

  3. En el menú de recursos, seleccione Información general.

    Captura de pantalla que muestra la página Información general.

  4. Copie los valores que se muestran como Punto de conexión y inicio de sesión de administrador.

    Recorte de pantalla que muestra los valores de Punto de conexión e Inicio de sesión de administrador en la página de información general.

  5. Si olvida la contraseña de la autenticación de administrador, restablezcala mediante el botón Restablecer contraseña .

    Recorte de pantalla que muestra el botón Restablecer contraseña en la página de información general.

Paso 1: Conexión e inserción de datos

Use el código siguiente para conectarse y cargar los datos mediante las instrucciones SQL CREATE TABLE e INSERT INTO. El código usa la clase NpgsqlCommand con estos métodos:

  • Open() para establecer una conexión con la base de datos flexible de Azure Database para PostgreSQL.
  • CreateCommand() para establecer la propiedad CommandText.
  • ExecuteNonQuery() método para ejecutar los comandos de la base de datos.

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

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();
        }
    }
}

¿Tiene algún problema? Póngase en contacto con nosotros.

Paso 2: Lectura de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT. El código usa la clase NpgsqlCommand con estos métodos:

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

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();
        }
    }
}

¿Tiene algún problema? Póngase en contacto con nosotros.

Paso 3: Actualización de datos

Use el código siguiente para conectarse a la base de datos y actualizar los datos mediante una instrucción SQL UPDATE . El código usa la NpgsqlCommand clase con los métodos siguientes:

  • Open() para establecer una conexión con el servidor flexible Azure Database for PostgreSQL.
  • CreateCommand() para establecer la CommandText propiedad .
  • ExecuteNonQuery() método para ejecutar los comandos de la base de datos.

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

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();
        }
    }
}


¿Tiene algún problema? Póngase en contacto con nosotros.

Paso 4: Eliminación de datos

Use el código siguiente para conectarse a la base de datos y eliminar datos mediante una instrucción DELETE SQL.

El código usa la NpgsqlCommand clase con el método Open() para establecer una conexión con la base de datos de servidor flexible Azure Database for PostgreSQL. A continuación, el código usa el método CreateCommand(), establece la CommandText propiedad y llama al método ExecuteNonQuery() para ejecutar los comandos de base de datos.

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

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();
        }
    }
}

Limpieza de recursos

Para limpiar todos los recursos usados durante este inicio rápido, elimine el grupo de recursos mediante el siguiente comando:

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