Snabbstart: Använd .NET (C#) för att ansluta och fråga efter data i Azure Database for PostgreSQL – enskild server
GÄLLER FÖR: Azure Database for PostgreSQL – enskild server
Viktigt!
Azure Database for PostgreSQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till Azure Database for PostgreSQL – flexibel server. Mer information om hur du migrerar till Azure Database for PostgreSQL – flexibel server finns i Vad händer med Azure Database for PostgreSQL – enskild server?.
Den här snabbstarten visar hur du ansluter till en Azure Database för PostgreSQL med hjälp av ett C#-program. Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen. I den här artikeln förutsätter vi att du har kunskaper om C# och att du inte har arbetat med Azure Database för PostgreSQL tidigare.
Förutsättningar
För den här snabbstarten behöver du:
Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
Skapa en enskild Azure Database for PostgreSQL-server med Hjälp av Azure-portalen
eller Azure CLI om du inte har något.Baserat på om du använder offentlig eller privat åtkomst slutför du en av åtgärderna nedan för att aktivera anslutningen.
Åtgärd Anslutningsmetod Instruktionsguide Konfigurera brandväggsregler Offentliga Portal
CLIKonfigurera tjänstslutpunkt Offentliga Portal
CLIKonfigurera privat länk Privat Portal
CLIInstallera .NET SDK för din plattform (Windows, Ubuntu Linux eller macOS) för din plattform.
Installera Visual Studio för att skapa projektet.
Installera Npgsql NuGet-paketet i Visual Studio.
Hämta anslutningsinformation
Hämta den information som du behöver för att ansluta till Azure Database för PostgreSQL. Du behöver det fullständiga servernamnet och inloggningsuppgifter.
- Logga in på Azure-portalen.
- På den vänstra menyn i Azure-portalen väljer du Alla resurser och söker sedan efter den server som du har skapat (till exempel mydemoserver).
- Välj servernamnet.
- På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen.
Steg 1: Ansluta och infoga data
Använd följande kod för att ansluta och läsa in data med hjälp av SQL-instruktionerna CREATE TABLE och INSERT. Koden använder klassen NpgsqlCommand med metoden:
- Öppna() för att upprätta en anslutning till PostgreSQL-databasen.
- CreateCommand() anger egenskapen CommandText.
- ExecuteNonQuery() -metod för att köra databaskommandona.
Viktigt!
Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Steg 2: Läsa data
Använd följande kod för att ansluta och läsa data med en SELECT-SQL-instruktion. Koden använder klassen NpgsqlCommand med metoden:
- Öppna() för att upprätta en anslutning till PostgreSQL.
- CreateCommand() och ExecuteReader() för att köra databaskommandona.
- Read() för att gå vidare till posten i resultatet.
- GetInt32() och GetString() för att parsa värdena i posten.
Viktigt!
Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Steg 3: Uppdatera data
Använd följande kod för att ansluta och uppdatera data med SQL-instruktionen UPDATE. Koden använder klassen NpgsqlCommand med metoden:
- Öppna() för att upprätta en anslutning till PostgreSQL.
- CreateCommand(), anger egenskapen CommandText.
- ExecuteNonQuery() -metod för att köra databaskommandona.
Viktigt!
Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Steg 4: Ta bort data
Använd följande kod för att ansluta och läsa data med SQL-instruktionen DELETE.
Koden använder klassen NpgsqlCommand med metoden Open() för att upprätta en anslutning till PostgreSQL-databasen. Sedan använder koden metoden CreateCommand(), anger egenskapen CommandText och anropar metoden ExecuteNonQuery() för att köra databaskommandona.
Viktigt!
Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Rensa resurser
Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för