Démarrage rapide : Utiliser .NET (C#) pour se connecter et interroger des données sur un serveur flexible Azure Database pour MySQL
S’APPLIQUE À : Azure Database pour MySQL – Serveur flexible
Ce guide de démarrage rapide montre comment se connecter à une instance de serveur flexible Azure Database pour MySQL à l’aide d’une application C#. Il détaille l’utilisation d’instructions SQL pour interroger la base de données, la mettre à jour, y insérer des données ou en supprimer.
Prérequis
Voici les prérequis pour ce guide de démarrage rapide :
Compte Azure avec un abonnement actif.
Si vous n’en avez pas, créez un compte gratuit Azure avant de commencer. Actuellement, avec un compte gratuit Azure, vous pouvez essayer gratuitement Azure Database pour MySQL – Serveur flexible pendant 12 mois. Pour plus d’informations, consultez Essayer gratuitement Azure Database pour MySQL – Serveur flexible.
Créez une instance de serveur flexible Azure Database pour MySQL à l’aide du portail Azure
ou d’Azure CLI, si vous n’en avez pas.Selon que vous utilisez un accès public ou privé, effectuez UNE des actions ci-dessous pour activer la connectivité.
Créer une base de données et un utilisateur non-administrateur
Installez le Kit de développement logiciel (SDK) .NET correspondant à votre plateforme (Windows, Ubuntu Linux ou macOS).
Vous rencontrez des problèmes ? Faites-le nous savoir.
Créer un projet C#
À l’invite de commandes, exécutez :
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Obtenir des informations de connexion
Obtenez les informations requises pour vous connecter à l’instance de serveur flexible Azure Database pour MySQL. Vous devez disposer du nom de serveur complet et des informations d’identification.
- Connectez-vous au portail Azure.
- Dans le menu de gauche du portail Azure, sélectionnez Toutes les ressources, puis recherchez le serveur que vous venez de créer, par exemple mydemoserver.
- Sélectionnez le nom du serveur.
- Dans le panneau Vue d’ensemble du serveur, notez le nom du serveur et le nom de connexion de l’administrateur du serveur. Si vous oubliez votre mot de passe, vous pouvez également le réinitialiser dans ce panneau.
Étape 1 : Vous connecter et insérer des données
Utilisez le code suivant pour vous connecter et charger les données à l’aide des instructions SQL CREATE TABLE
et INSERT INTO
. Le code utilise les méthodes de la classe MySqlConnection
:
- OpenAsync() pour établir une connexion à MySQL.
- CreateCommand() pour définir la propriété CommandText.
- ExecuteNonQueryAsync() pour exécuter les commandes de base de données.
Remplacez les paramètres Server
, Database
, UserID
et Password
par les valeurs que vous avez spécifiées lorsque vous avez créé le serveur et la base de données.
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",
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();
}
}
}
Vous rencontrez des problèmes ? Dites-le nous.
Étape 2 : Lire les données
Utilisez le code suivant pour vous connecter et lire les données à l’aide d’une instruction SQL SELECT
. Le code utilise la classe MySqlConnection
avec les méthodes :
- OpenAsync() pour établir une connexion à MySQL.
- CreateCommand() pour définir la propriété CommandText.
- ExecuteReaderAsync() pour exécuter les commandes de base de données.
- ReadAsync() pour accéder aux enregistrements contenus dans les résultats. Ensuite, le code utilise GetInt32 et GetString pour analyser les valeurs de l’enregistrement.
Remplacez les paramètres Server
, Database
, UserID
et Password
par les valeurs que vous avez spécifiées lorsque vous avez créé le serveur et la base de données.
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();
}
}
}
Vous rencontrez des problèmes ? Faites-le nous savoir.
Étape 3 : Mettre à jour des données
Utilisez le code suivant pour vous connecter et lire les données à l’aide d’une instruction SQL UPDATE
. Le code utilise la classe MySqlConnection
avec la méthode :
- OpenAsync() pour établir une connexion à MySQL.
- CreateCommand() pour définir la propriété CommandText.
- ExecuteNonQueryAsync() pour exécuter les commandes de base de données.
Remplacez les paramètres Server
, Database
, UserID
et Password
par les valeurs que vous avez spécifiées lorsque vous avez créé le serveur et la base de données.
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",
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();
}
}
}
Étape 4 : Suppression de données
Utilisez le code suivant pour vous connecter et supprimer les données à l’aide d’une instruction SQL DELETE
.
Le code utilise la classe MySqlConnection
avec la méthode :
- OpenAsync() pour établir une connexion à MySQL.
- CreateCommand() pour définir la propriété CommandText.
- ExecuteNonQueryAsync() pour exécuter les commandes de base de données.
Remplacez les paramètres Server
, Database
, UserID
et Password
par les valeurs que vous avez spécifiées lorsque vous avez créé le serveur et la base de données.
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",
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();
}
}
}
Nettoyer les ressources
Pour nettoyer toutes les ressources utilisées dans le cadre de ce guide de démarrage rapide, supprimez le groupe de ressources à l’aide de la commande suivante :
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes