Snabbstart: Använd .NET (C#) för att ansluta och fråga efter data i Azure Database for PostgreSQL – flexibel server
GÄLLER FÖR: Azure Database for PostgreSQL – flexibel 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.
Krav
För den här snabbstarten behöver du:
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Skapa en Azure Database for PostgreSQL flexibel server med Azure-Portal
eller Azure CLI om du inte har något. - Använd den tomma postgres-databasen som är tillgänglig på servern eller skapa en ny databas.
- Installera .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-Portal.
- På den vänstra menyn i Azure Portal klickar du på Alla resurser. Sök sedan efter den server som du skapade (till exempel mydemoserver).
- Klicka på 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 SQL-uttryckenCREATE TABLE och INSERT INTO. Koden använder klassen NpgsqlCommand med metoden:
- Öppna() för att upprätta en anslutning till PostgreSQL-databasen.
- CreateCommand() anger egenskapen CommandText.
- ExecuteNonQuery() -metoden 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";
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();
}
}
}
Har du några problem? Berätta för oss.
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:
- Open() 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";
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();
}
}
}
Har du några problem? Berätta för oss.
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:
- Open() för att upprätta en anslutning till PostgreSQL.
- CreateCommand(), anger egenskapen CommandText.
- ExecuteNonQuery() -metoden 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";
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();
}
}
}
Har du några problem? Berätta för oss.
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 = "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();
}
}
}
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