Database di Azure per MySQL: usare .NET (C#) per connettersi ed eseguire query sui datiAzure Database for MySQL: Use .NET (C#) to connect and query data

Questa guida introduttiva illustra come connettersi a un database di Azure per MySQL usando un'applicazione C#.This quickstart demonstrates how to connect to an Azure Database for MySQL by 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. Questo argomento presuppone che si abbia familiarità con lo sviluppo con C#, ma non con Database di Azure per MySQL.This topic assumes that you are familiar with developing using C# and that you are new to working with Azure Database for MySQL.

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.Install .NET. 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.Install Visual Studio.

Creare un progetto C#Create a C# project

Al prompt dei comandi eseguire:At a command prompt, run:

mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector

Ottenere informazioni di connessioneGet connection information

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per MySQL.Get the connection information needed to connect to the Azure Database for MySQL. 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 quindi cercare il server creato, ad esempio 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. Fare clic sul nome del server.Click the server name.
  4. Nel pannello Panoramica del server prendere nota dei valori riportati in Nome server e Nome di accesso dell'amministratore server.From the server's Overview panel, make a note of the Server name and Server admin login name. Se si dimentica la password, in questo pannello è anche possibile reimpostarla.If you forget your password, you can also reset the password from this panel. Nome del server del database di Azure per MySQLAzure Database for MySQL server name

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 by using CREATE TABLE and INSERT INTO SQL statements. Il codice usa la classe MySqlConnection con il metodo OpenAsync() per stabilire una connessione a MySQL.The code uses the MySqlConnection class with method OpenAsync() to establish a connection to MySQL. Il codice usa quindi il metodo CreateCommand(), imposta la proprietà CommandText e chiama il metodo ExecuteNonQueryAsync() per eseguire i comandi di database.Then the code uses method CreateCommand(), sets the CommandText property, and calls method ExecuteNonQueryAsync() to run the database commands.

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

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace AzureMySqlExample
{
    class MySqlCreate
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER@YOUR-SERVER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "DROP TABLE IF EXISTS inventory;";
                    await command.ExecuteNonQueryAsync();
                    Console.WriteLine("Finished dropping table (if existed)");

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

                    command.CommandText = @"INSERT INTO inventory (name, quantity) VALUES (@name1, @quantity1),
                        (@name2, @quantity2), (@name3, @quantity3);";
                    command.Parameters.AddWithValue("@name1", "banana");
                    command.Parameters.AddWithValue("@quantity1", 150);
                    command.Parameters.AddWithValue("@name2", "orange");
                    command.Parameters.AddWithValue("@quantity2", 154);
                    command.Parameters.AddWithValue("@name3", "apple");
                    command.Parameters.AddWithValue("@quantity3", 100);

                    int rowCount = await command.ExecuteNonQueryAsync();
                    Console.WriteLine(String.Format("Number of rows inserted={0}", rowCount));
                }

                // connection will be closed by the 'using' block
                Console.WriteLine("Closing connection");
            }

            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 by using a SELECT SQL statement. Il codice usa la classe MySqlConnection con il metodo OpenAsync() per stabilire una connessione a MySQL.The code uses the MySqlConnection class with method OpenAsync() to establish a connection to MySQL. Usa quindi i metodi CreateCommand() ed ExecuteReaderAsync() per eseguire i comandi di databaseThen the code uses method CreateCommand() and method ExecuteReaderAsync() to run the database commands. e successivamente ReadAsync() per passare ai record nei risultati.Next the code uses ReadAsync() to advance to the records in the results. Il codice usa quindi GetInt32 e GetString per analizzare i valori nel record.Then the code uses GetInt32 and GetString to parse the values in the record.

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

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace AzureMySqlExample
{
    class MySqlRead
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER@YOUR-SERVER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

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

                    using (var reader = await command.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            Console.WriteLine(string.Format(
                                "Reading from table=({0}, {1}, {2})",
                                reader.GetInt32(0),
                                reader.GetString(1),
                                reader.GetInt32(2)));
                        }
                    }
                }

                Console.WriteLine("Closing connection");
            }

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

Aggiornare i datiUpdate data

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

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

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace AzureMySqlExample
{
    class MySqlUpdate
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER@YOUR-SERVER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "UPDATE inventory SET quantity = @quantity WHERE name = @name;";
                    command.Parameters.AddWithValue("@quantity", 200);
                    command.Parameters.AddWithValue("@name", "banana");

                    int rowCount = await command.ExecuteNonQueryAsync();
                    Console.WriteLine(String.Format("Number of rows updated={0}", rowCount));
                }

                Console.WriteLine("Closing connection");
            }

            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 the data by using a DELETE SQL statement.

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

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

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace AzureMySqlExample
{
    class MySqlDelete
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER@YOUR-SERVER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "DELETE FROM inventory WHERE name = @name;";
                    command.Parameters.AddWithValue("@name", "orange");

                    int rowCount = await command.ExecuteNonQueryAsync();
                    Console.WriteLine(String.Format("Number of rows deleted={0}", rowCount));
                }

                Console.WriteLine("Closing connection");
            }

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

Passaggi successiviNext steps