Guida introduttiva: Usare .NET (C#) per connettersi ed eseguire query sui dati in Database di Azure per MySQL
SI APPLICA A: Database di Azure per MySQL - Server singolo
Importante
Database di Azure per MySQL server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per MySQL server flessibile. Per altre informazioni sulla migrazione a Database di Azure per MySQL server flessibile, vedere Che cosa accade a Database di Azure per MySQL server singolo?
Questa guida introduttiva illustra come connettersi a un database di Azure per MySQL usando un'applicazione C#. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database.
Prerequisiti
Per questa guida di avvio rapido, è necessario:
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Creare un server singolo di Database di Azure per MySQL usando il portale di Azure
o in alternativa l'interfaccia della riga di comando di Azure. - A seconda che si usi l'accesso pubblico o privato, completare UNA delle azioni seguenti per abilitare la connettività.
- Installare .NET SDK per la piattaforma (Windows, Ubuntu Linux o macOS) per la piattaforma.
Azione | Metodo di connettività | Guida pratica |
---|---|---|
Configurare le regole del firewall | Pubblico | Portale CLI |
Configurare l'endpoint di servizio | Pubblico | Portale CLI |
Configurare il collegamento privato | Privata | Portale CLI |
Creare un progetto C#
Al prompt dei comandi eseguire:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Ottenere informazioni di connessione
Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per MySQL. Sono necessari il nome del server completo e le credenziali di accesso.
- Accedere al portale di Azure.
- Nel menu a sinistra nel portale di Azure fare clic su Tutte le risorse e quindi cercare il server creato, ad esempio mydemoserver.
- Fare clic sul nome del server.
- Nel pannello Panoramica del server prendere nota dei valori riportati in Nome server e Nome di accesso dell'amministratore server. Se si dimentica la password, in questo pannello è anche possibile reimpostarla.
Passaggio 1: Connessione e inserire i dati
Usare il codice seguente per connettersi e caricare i dati usando CREATE TABLE
le istruzioni SQL e INSERT INTO
. Il codice usa i metodi della classe MySqlConnection
:
- OpenAsync() per stabilire una connessione a MySQL.
- CreateCommand() per impostare la proprietà CommandText.
- ExecuteNonQueryAsync() per eseguire i comandi di database.
Sostituire i parametri Server
, Database
, UserID
e Password
con i valori specificati al momento della creazione del server e del database.
using System;
using System.Threading.Tasks;
using MySqlConnector;
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();
}
}
}
Passaggio 2: Leggere i dati
Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT
. Il codice usa la classe MySqlConnection
con i metodi:
- OpenAsync() per stabilire una connessione a MySQL.
- CreateCommand() per impostare la proprietà CommandText.
- ExecuteReaderAsync() per eseguire i comandi di database.
- ReadAsync() per passare ai record nei risultati. Il codice usa quindi GetInt32 e GetString per analizzare i valori nel record.
Sostituire i parametri Server
, Database
, UserID
e Password
con i valori specificati al momento della creazione del server e del database.
using System;
using System.Threading.Tasks;
using MySqlConnector;
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();
}
}
}
Passaggio 3: Aggiornare i dati
Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL UPDATE
. Il codice usa la classe MySqlConnection
con i metodi:
- OpenAsync() per stabilire una connessione a MySQL.
- CreateCommand() per impostare la proprietà CommandText.
- ExecuteNonQueryAsync() per eseguire i comandi di database.
Sostituire i parametri Server
, Database
, UserID
e Password
con i valori specificati al momento della creazione del server e del database.
using System;
using System.Threading.Tasks;
using MySqlConnector;
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();
}
}
}
Passaggio 4: Eliminare i dati
Usare il codice seguente per connettersi ed eliminare i dati usando un'istruzione SQL DELETE
.
Il codice usa la classe MySqlConnection
con i metodi:
- OpenAsync() per stabilire una connessione a MySQL.
- CreateCommand() per impostare la proprietà CommandText.
- ExecuteNonQueryAsync() per eseguire i comandi di database.
Sostituire i parametri Server
, Database
, UserID
e Password
con i valori specificati al momento della creazione del server e del database.
using System;
using System.Threading.Tasks;
using MySqlConnector;
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();
}
}
}
Pulire le risorse
Per pulire tutte le risorse usate in questo argomento di avvio rapido, eliminare il gruppo di risorse con il comando seguente:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Passaggi successivi
Non si trovano le informazioni cercate? Inviare un commento.