Quickstart: .NET (C#) gebruiken om verbinding te maken met en query's uit te voeren op gegevens in Azure Database for PostgreSQL - Enkele server
VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server
Belangrijk
Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.
In deze snelstartgids ziet u hoe u met behulp van een C#-toepassing verbinding maakt met een Azure Database voor PostgreSQL. U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen. In de stappen van dit artikel wordt ervan uitgegaan dat u bekend bent met het ontwikkelen met C#, maar geen ervaring hebt met het werken met Azure Database voor PostgreSQL.
Vereisten
Voor deze quickstart hebt u het volgende nodig:
Een Azure-account met een actief abonnement. Gratis een account maken
Maak een enkele Azure Database for PostgreSQL-server met behulp van Azure Portal
of Azure CLI, als u er nog geen hebt.Voltooi EEN van de onderstaande acties om connectiviteit in te schakelen, afhankelijk van of u openbare toegang of privétoegang hebt.
Actie Verbindingsmethode Instructiegids Firewallregels configureren Openbaar Portal
CLIService-eindpunt configureren Openbaar Portal
CLIPrivékoppeling configureren Privé Portal
CLIInstalleer de .NET SDK voor uw platform (Windows, Ubuntu Linux of macOS) voor uw platform.
Installeer Visual Studio om uw project te bouwen.
Installeer het NuGet-pakket Npgsql in Visual Studio.
Verbindingsgegevens ophalen
Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met de Azure Database voor PostgreSQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.
- Meld u aan bij Azure Portal.
- Selecteer in het menu aan de linkerkant in de Azure-portal Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
- Selecteer de servernaam.
- Ga naar het venster Overzicht van de server en noteer de Servernaam en de Aanmeldingsnaam van de serverbeheerder. Als u uw wachtwoord vergeet, kunt u het wachtwoord in dit venster opnieuw instellen.
Stap 1: gegevens Verbinding maken en invoegen
Gebruik de volgende code om verbinding te maken en de gegevens te laden met de SQL-instructies CREATE TABLE EN INSERT INTO. De code maakt gebruik van de klasse NpgsqlCommand met de methode:
- Open() om een verbinding tot stand te brengen met de PostgreSQL-database.
- Met CreateCommand() wordt de eigenschap CommandText ingesteld.
- Met de methode ExecuteNonQuery() worden de databaseopdrachten uitgevoerd.
Belangrijk
Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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@mydemoserver";
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};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();
}
}
}
Stap 2: Gegevens lezen
Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie SELECT. De code maakt gebruik van de klasse NpgsqlCommand met de methode:
- Open() om een verbinding tot stand te brengen met PostgreSQL.
- CreateCommand() en ExecuteReader() worden gebruikt om de databaseopdrachten uit te voeren.
- Read() wordt gebruikt om door te gaan naar de record in de resultaten.
- GetInt32() en GetString() worden gebruikt om de waarden in de record te parseren.
Belangrijk
Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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@mydemoserver";
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};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();
}
}
}
Stap 3: Gegevens bijwerken
Gebruik de volgende code om verbinding te maken en de gegevens bij te werken met een SQL-instructie UPDATE. De code maakt gebruik van de klasse NpgsqlCommand met de methode:
- Open() om een verbinding tot stand te brengen met PostgreSQL.
- Met CreateCommand() wordt de eigenschap CommandText ingesteld.
- Met de methode ExecuteNonQuery() worden de databaseopdrachten uitgevoerd.
Belangrijk
Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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@mydemoserver";
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};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();
}
}
}
Stap 4: Gegevens verwijderen
Gebruik de volgende code om verbinding te maken en gegevens te verwijderen met de SQL-instructie DELETE.
In de code wordt de klasse NpgsqlCommand gebruikt met de methode Open() om een verbinding met de PostgreSQL-database te maken. Vervolgens wordt de methode CreateCommand() gebruikt, de eigenschap CommandText ingesteld en de methode ExecuteNonQuery() aangeroepen om de databaseopdrachten uit te voeren.
Belangrijk
Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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 = "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};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();
}
}
}
Resources opschonen
Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes