Inicio rápido: Uso de .NET (C#) para conectarse y consultar datos en Azure Database for PostgreSQL: servidor únicoQuickstart: Use .NET (C#) to connect and query data in Azure Database for PostgreSQL - Single Server

En este tutorial rápido se muestra cómo conectarse a una instancia de Azure Database for PostgreSQL mediante una aplicación de C#.This quickstart demonstrates how to connect to an Azure Database for PostgreSQL using a C# application. Se indica cómo usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos.It shows how to use SQL statements to query, insert, update, and delete data in the database. En los pasos de este artículo se da por hecho que está familiarizado con el desarrollo mediante C#, pero que nunca ha trabajado con Azure Database for PostgreSQL.The steps in this article assume that you are familiar with developing using C#, and that you are new to working with Azure Database for PostgreSQL.

PrerrequisitosPrerequisites

Para esta guía de inicio rápido, necesitará lo siguiente:For this quickstart you need:

  • Una cuenta de Azure con una suscripción activa.An Azure account with an active subscription. Cree una cuenta gratuita.Create an account for free.

  • Crear un único servidor Azure Database for PostgreSQL mediante Azure PortalCreate an Azure Database for PostgreSQL single server using Azure portal
    o la CLI de Azure si no tiene uno.or Azure CLI if you do not have one.

  • En función de si usa el acceso público o privado, complete UNA de las acciones siguientes para habilitar la conectividad.Based on whether you are using public or private access, complete ONE of the actions below to enable connectivity.

    AcciónAction Método de conectividadConnectivity method Guía paso a pasoHow-to guide
    Configurar reglas de firewallConfigure firewall rules PúblicoPublic PortalPortal
    CLICLI
    Configurar el punto de conexión de servicioConfigure Service Endpoint PúblicoPublic PortalPortal
    CLICLI
    Configuración del vínculo privadoConfigure private link PrivatePrivate PortalPortal
    CLICLI
  • Instale .NET Framework para su plataforma (Windows, Ubuntu Linux o macOS).Install the .NET Framework for your platform (Windows, Ubuntu Linux, or macOS).

  • Instale Visual Studio para compilar el proyecto.Install Visual Studio to build your project.

  • Instale el paquete NuGet Npgsql en Visual Studio.Install Npgsql NuGet package in Visual Studio.

Obtención de información sobre la conexiónGet connection information

Obtenga la información de conexión necesaria para conectarse a Azure Database for PostgreSQL.Get the connection information needed to connect to the Azure Database for PostgreSQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.You need the fully qualified server name and login credentials.

  1. Inicie sesión en Azure Portal.Log in to the Azure portal.
  2. En el menú izquierdo de Azure Portal, haga clic en Todos los recursos y, luego, busque el servidor que ha creado, por ejemplo, mydemoserver.From the left-hand menu in Azure portal, click All resources, and then search for the server you have created (such as mydemoserver).
  3. Haga clic en el nombre del servidor.Click the server name.
  4. En el panel Información general del servidor, anote el nombre del servidor y el nombre de inicio de sesión del administrador del servidor.From the server's Overview panel, make a note of the Server name and Server admin login name. Si olvida la contraseña, puede restablecerla en este panel.If you forget your password, you can also reset the password from this panel. Nombre de servidor de Azure Database for PostgreSQL

Paso 1: Conexión e inserción de datosStep 1: Connect and insert data

Use el código siguiente para conectarse y cargar los datos mediante las instrucciones SQL CREATE TABLE e INSERT INTO.Use the following code to connect and load the data using CREATE TABLE and INSERT INTO SQL statements. El código usa la clase NpgsqlCommand con el método:The code uses NpgsqlCommand class with method:

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

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

¿Tiene problemas? Háganoslo saber.Having issues? Let us know.

Paso 2: Lectura de datosStep 2: Read data

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT.Use the following code to connect and read the data using a SELECT SQL statement. El código usa la clase NpgsqlCommand con el método:The code uses NpgsqlCommand class with method:

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

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

¿Tiene problemas? Háganoslo saber.Having issues? Let us know.

Paso 3: Actualización de datosStep 3: Update data

Use el código siguiente para conectarse y actualizar los datos mediante la instrucción SQL UPDATE.Use the following code to connect and update the data using an UPDATE SQL statement. El código usa la clase NpgsqlCommand con el método:The code uses NpgsqlCommand class with method:

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

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


¿Tiene problemas? Háganoslo saber.Having issues? Let us know.

Paso 4: Eliminación de datosStep 4: Delete data

Utilice el código siguiente para conectarse y eliminar los datos mediante una instrucción SQL DELETE.Use the following code to connect and delete data using a DELETE SQL statement.

El código usa la clase NpgsqlCommand con el método Open() para establecer una conexión a la base de datos PostgreSQL.The code uses NpgsqlCommand class with method Open() to establish a connection to the PostgreSQL database. A continuación, el código usa el método CreateCommand(), establece la propiedad CommandText y llama al método ExecuteNonQuery() para ejecutar los comandos de base de datos.Then, the code uses the CreateCommand() method, sets the CommandText property, and calls the method ExecuteNonQuery() to run the database commands.

Importante

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

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

Limpieza de recursosClean up resources

Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:To clean up all resources used during this quickstart, delete the resource group using the following command:

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

Pasos siguientesNext steps

¿No encuentra lo que busca? Háganoslo saber.Cannot find what you are looking for? Let us know.