Démarrage rapide : Utiliser .NET (C#) afin de se connecter à Azure Database pour PostgreSQL - Serveur flexible et d’interroger les données
S’APPLIQUE À : Azure Database pour PostgreSQL - Serveur flexible
Ce démarrage rapide vous montre comment vous connecter à une instance de serveur flexible Azure Database pour PostgreSQL en utilisant 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. Les étapes de cet article supposent que vous maîtrisez le développement à l’aide de C#, mais que vous ne savez pas utiliser le serveur flexible Azure Database pour PostgreSQL.
Prérequis
Voici les prérequis pour ce guide de démarrage rapide :
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Créer une instance de serveur flexible Azure Database pour PostgreSQL en utilisant le Portail Azure
ou d’Azure CLI, si vous n’en avez pas. - Utilisez la base de données vide postgres qui se trouve sur le serveur ou créez une nouvelle base de données.
- Installez le Kit de développement logiciel (SDK) .NET correspondant à votre plateforme (Windows, Ubuntu Linux ou macOS).
- Installez Visual Studio pour générer votre projet.
- Installez le package NuGet Npgsql dans Visual Studio.
Obtenir des informations de connexion
Obtenez les informations de connexion requises pour vous connecter à l’instance de serveur flexible Azure Database pour PostgreSQL. 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, cliquez sur Toutes les ressources, puis recherchez le serveur que vous venez de créer, par exemple mydemoserver.
- Cliquez sur 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 d’instructions SQL CREATE TABLE et INSERT INTO. Le code utilise la classe NpgsqlCommand avec :
- Utilisez Open() pour établir une connexion à la base de données de serveur flexible Azure Database pour PostgreSQL.
- La méthode CreateCommand() pour définir la propriété CommandText.
- La méthode ExecuteNonQuery() pour exécuter les commandes de base de données.
Important
Remplacez les paramètres Host, DBName, User et Password par les valeurs spécifiées lors de la création du serveur et de la base de données.
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";
private static string DBname = "postgres";
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();
}
}
}
Vous rencontrez des problèmes ? Dites-le nous.
Étape 2 : Lire les données
Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL SELECT. Le code utilise la classe NpgsqlCommand avec :
- La méthode Open() pour établir une connexion à PostgreSQL.
- Les méthodes CreateCommand() et ExecuteReader() pour exécuter les commandes de base de données.
- La méthode Read() pour accéder à l’enregistrement dans les résultats.
- Les méthodes GetInt32() et GetString() pour analyser les valeurs dans l’enregistrement.
Important
Remplacez les paramètres Host, DBName, User et Password par les valeurs spécifiées lors de la création du serveur et de la base de données.
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";
private static string DBname = "postgres";
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();
}
}
}
Vous rencontrez des problèmes ? Dites-le nous.
Étape 3 : Mettre à jour des données
Utilisez le code suivant pour vous connecter et mettre à jour les données à l’aide d’une instruction SQL UPDATE. Le code utilise la classe NpgsqlCommand avec :
- Utilisez Open() pour établir une connexion au serveur flexible Azure Database pour PostgreSQL.
- la méthode CreateCommand() pour définir la propriété CommandText ;
- La méthode ExecuteNonQuery() pour exécuter les commandes de base de données.
Important
Remplacez les paramètres Host, DBName, User et Password par les valeurs spécifiées lors de la création du serveur et de la base de données.
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";
private static string DBname = "postgres";
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();
}
}
}
Vous rencontrez des problèmes ? Dites-le nous.
É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 NpgsqlCommand avec la méthode Open() pour établir une connexion à la base de données de serveur flexible Azure Database pour PostgreSQL. Le code utilise ensuite la méthode CreateCommand(), définit la propriété CommandText et appelle la méthode ExecuteNonQuery() pour exécuter les commandes de la base de données.
Important
Remplacez les paramètres Host, DBName, User et Password par les valeurs spécifiées lors de la création du serveur et de la base de données.
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 = "postgres";
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();
}
}
}
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