Database di Azure per PostgreSQL: usare .NET (C#) per connettersi ai dati ed eseguire queryAzure Database for PostgreSQL: Use .NET (C#) to connect and query data

Questa guida introduttiva illustra come connettersi a un database di Azure per PostgreSQL usando un'applicazione C#.This quickstart demonstrates how to connect to an Azure Database for PostgreSQL using a C# application. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database.It shows how to use SQL statements to query, insert, update, and delete data in the database. Le procedure descritte in questo articolo presuppongono che si abbia familiarità con lo sviluppo con C#, ma non con Database di Azure per 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.

PrerequisitiPrerequisites

Questa guida introduttiva usa le risorse create in una delle guide seguenti come punto di partenza:This quickstart uses the resources created in either of these guides as a starting point:

È anche necessario:You also need to:

  • Installare .NET Framework.Install the .NET Framework. Seguire la procedura descritta nell'articolo collegato per installare .NET per la specifica piattaforma in uso (Windows, Ubuntu Linux o macOS).Follow the steps in the linked article to install .NET specifically for your platform (Windows, Ubuntu Linux, or macOS).
  • Installare Visual Studio o Visual Studio Code per digitare e modificare il codice.Install Visual Studio or Visual Studio Code to type and edit code.
  • Aggiungere un riferimento al pacchetto Nuget Npgsql.Add a reference to the Npgsql Nuget package.

Ottenere informazioni di connessioneGet connection information

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per PostgreSQL.Get the connection information needed to connect to the Azure Database for PostgreSQL. Sono necessari il nome del server completo e le credenziali di accesso.You need the fully qualified server name and login credentials.

  1. Accedere al Portale di Azure.Log in to the Azure portal.
  2. Nel menu a sinistra nel portale di Azure fare clic su Tutte le risorse e cercare il server creato, ad esempio mypgserver-20170401.From the left-hand menu in Azure portal, click All resources and search for the server you have created, such as mypgserver-20170401.
  3. Fare clic sul nome del server mypgserver-20170401.Click the server name mypgserver-20170401.
  4. Selezionare la pagina Panoramica del server.Select the server's Overview page. Annotare il Nome server e il nome di accesso dell'amministratore del server.Make a note of the Server name and Server admin login name. Database di Azure per PostgreSQL - Accesso dell'amministratore del serverAzure Database for PostgreSQL - Server Admin Login
  5. Se si dimenticano le informazioni di accesso per il server, passare alla pagina Panoramica per visualizzare il Nome di accesso dell'amministratore server e, se necessario, reimpostare la password.If you forget your server login information, navigate to the Overview page to view the Server admin login name and, if necessary, reset the password.

Connettersi, creare tabelle e inserire datiConnect, create table, and insert data

Usare il codice seguente per connettersi e caricare i dati usando le istruzioni SQL CREATE TABLE e INSERT INTO.Use the following code to connect and load the data using CREATE TABLE and INSERT INTO SQL statements. Il codice usa la classe NpgsqlCommand con il metodo Open() per stabilire una connessione al database PostgreSQL.The code uses NpgsqlCommand class with method Open() to establish a connection to the PostgreSQL database. Il codice usa quindi il metodo CreateCommand(), imposta la proprietà CommandText e chiama il metodo ExecuteNonQuery() per eseguire i comandi di database.Then the code uses method CreateCommand(), sets the CommandText property, and calls the ExecuteNonQuery() method to run the database commands.

Sostituire i parametri Host, DBName, User e Password con i valori specificati al momento della creazione del server e del database.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;

namespace Driver
{
    public class AzurePostgresCreate
    {
        // Obtain connection string information from the portal
        //
        private static string Host = "mypgserver-20170401.postgres.database.azure.com";
        private static string User = "mylogin@mypgserver-20170401";
        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}; SSL Mode=Prefer; Trust Server Certificate=true",
                    Host,
                    User,
                    DBname,
                    Port,
                    Password);

            var conn = new NpgsqlConnection(connString);

            Console.Out.WriteLine("Opening connection");
            conn.Open();

            var command = conn.CreateCommand();
            command.CommandText = "DROP TABLE IF EXISTS inventory;";
            command.ExecuteNonQuery();
            Console.Out.WriteLine("Finished dropping table (if existed)");

            command.CommandText = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
            command.ExecuteNonQuery();
            Console.Out.WriteLine("Finished creating table");

            command.CommandText =
                String.Format(
                    @"
                                INSERT INTO inventory (name, quantity) VALUES ({0}, {1});
                                INSERT INTO inventory (name, quantity) VALUES ({2}, {3});
                                INSERT INTO inventory (name, quantity) VALUES ({4}, {5});
                            ",
                    "\'banana\'", 150,
                    "\'orange\'", 154,
                    "\'apple\'", 100
                    );

            int nRows = command.ExecuteNonQuery();
            Console.Out.WriteLine(String.Format("Number of rows inserted={0}", nRows));

            Console.Out.WriteLine("Closing connection");
            conn.Close();

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Leggere i datiRead data

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT.Use the following code to connect and read the data using a SELECT SQL statement. Il codice usa la classe NpgsqlCommand con il metodo Open() per stabilire una connessione a PostgreSQL.The code uses NpgsqlCommand class with method Open() to establish a connection to PostgreSQL. Il codice usa quindi il metodo CreateCommand() e il metodo ExecuteReader() per eseguire i comandi di database.Then the code uses the methods CreateCommand() and ExecuteReader() to run the database commands. Il codice usa poi Read() per passare ai record nei risultati.Next, the code uses Read() to advance to the record in the results. Il codice usa quindi GetInt32() e GetString() per analizzare i valori nel record.Finally, the code uses GetInt32() and GetString() to parse the values in the record.

Sostituire i parametri Host, DBName, User e Password con i valori specificati al momento della creazione del server e del database.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;

namespace Driver
{
    public class AzurePostgresRead
    {
        // Obtain connection string information from the portal
        //
        private static string Host = "mypgserver-20170401.postgres.database.azure.com";
        private static string User = "mylogin@mypgserver-20170401";
        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};",
                    Host,
                    User,
                    DBname,
                    Port,
                    Password);

            var conn = new NpgsqlConnection(connString);

            Console.Out.WriteLine("Opening connection");
            conn.Open();

            var command = conn.CreateCommand();
            command.CommandText = "SELECT * FROM inventory;";

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

            Console.Out.WriteLine("Closing connection");
            conn.Close();

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Aggiornare i datiUpdate data

Usare il codice seguente per connettersi e aggiornare i dati usando un'istruzione SQL UPDATE.Use the following code to connect and update the data using an UPDATE SQL statement. Il codice usa la classe NpgsqlCommand con il metodo Open() per stabilire una connessione a PostgreSQL.The code uses NpgsqlCommand class with method Open() to establish a connection to PostgreSQL. Il codice usa quindi il metodo CreateCommand(), imposta la proprietà CommandText e chiama il metodo ExecuteNonQuery() per eseguire i comandi di database.Then, the code uses method CreateCommand(), sets the CommandText property, and calls the ExecuteNonQuery() method to run the database commands.

Sostituire i parametri Host, DBName, User e Password con i valori specificati al momento della creazione del server e del database.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;

namespace Driver
{
    public class AzurePostgresUpdate
    {
        // Obtain connection string information from the portal
        //
        private static string Host = "mypgserver-20170401.postgres.database.azure.com";
        private static string User = "mylogin@mypgserver-20170401";
        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};",
                    Host,
                    User,
                    DBname,
                    Port,
                    Password);

            var conn = new NpgsqlConnection(connString);

            Console.Out.WriteLine("Opening connection");
            conn.Open();

            var command = conn.CreateCommand();
            command.CommandText =
            String.Format("UPDATE inventory SET quantity = {0} WHERE name = {1};",
                200,
                "\'banana\'"
                );

            int nRows = command.ExecuteNonQuery();
            Console.Out.WriteLine(String.Format("Number of rows updated={0}", nRows));

            Console.Out.WriteLine("Closing connection");
            conn.Close();

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Eliminare i datiDelete data

Usare il codice seguente per connettersi ed eliminare i dati usando un'istruzione SQL DELETE.Use the following code to connect and delete data using a DELETE SQL statement.

Il codice usa la classe NpgsqlCommand con il metodo Open() per stabilire una connessione al database PostgreSQL.The code uses NpgsqlCommand class with method Open() to establish a connection to the PostgreSQL database. Il codice usa quindi il metodo CreateCommand(), imposta la proprietà CommandText e chiama il metodo ExecuteNonQuery() per eseguire i comandi di database.Then, the code uses the CreateCommand() method, sets the CommandText property, and calls the method ExecuteNonQuery() to run the database commands.

Sostituire i parametri Host, DBName, User e Password con i valori specificati al momento della creazione del server e del database.Replace the Host, DBName, User, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;

namespace Driver
{
    public class AzurePostgresDelete
    {
        // Obtain connection string information from the portal
        //
        private static string Host = "mypgserver-20170401.postgres.database.azure.com";
        private static string User = "mylogin@mypgserver-20170401";
        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};",
                    Host,
                    User,
                    DBname,
                    Port,
                    Password);

            var conn = new NpgsqlConnection(connString);

            Console.Out.WriteLine("Opening connection");
            conn.Open();

            var command = conn.CreateCommand();
            command.CommandText =
            String.Format("DELETE FROM inventory WHERE name = {0};",
                "\'orange\'");
            int nRows = command.ExecuteNonQuery();
            Console.Out.WriteLine(String.Format("Number of rows deleted={0}", nRows));

            Console.Out.WriteLine("Closing connection");
            conn.Close();

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Passaggi successiviNext steps