Mulai Cepat: Menggunakan .NET (C#) untuk menghubungkan dan meminta data di Azure Database for PostgreSQL - Server Tunggal

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Tunggal

Penting

Azure Database for PostgreSQL - Server Tunggal berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke Azure Database for PostgreSQL - Server Fleksibel. Untuk informasi selengkapnya tentang migrasi ke Azure Database for PostgreSQL - Server Fleksibel, lihat Apa yang terjadi pada Server Tunggal Azure Database for PostgreSQL?.

Mulai cepat ini menunjukkan cara menyambungkan ke Azure Database for PostgreSQL menggunakan aplikasi C#. Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database. Langkah-langkah dalam artikel ini mengasumsikan bahwa Anda sudah familiar dengan pengembangan menggunakan C#, dan Anda baru bekerja dengan Azure Database for PostgreSQL.

Prasyarat

Untuk mulai cepat ini, Anda perlu:

  • Akun Azure dengan langganan aktif. Buat akun secara gratis.

  • Membuat server tunggal Azure Database for PostgreSQL menggunakan Portal Azure
    atau Azure CLI jika Anda tidak memilikinya.

  • Berdasarkan pada apakah Anda menggunakan akses publik atau privat, selesaikan SALAH SATU tindakan di bawah ini untuk mengaktifkan konektivitas.

    Perbuatan Metode konektivitas Panduan
    Mengonfigurasi aturan firewall Publik Portal
    CLI
    Mengonfigurasi Titik Akhir Layanan Publik Portal
    CLI
    Mengonfigurasi tautan privat Privat Portal
    CLI
  • Instal .NET SDK untuk platform Anda (Windows, Ubuntu Linux, atau macOS).

  • Pasang Visual Studio untuk membuat proyek Anda.

  • Pasang paket NuGet Npgsql di Visual Studio.

Mendapatkan informasi koneksi

Dapatkan informasi terkait koneksi yang diperlukan untuk menyambungkan ke Azure Database for PostgreSQL. Anda memerlukan nama server dan kredensial untuk masuk yang sepenuhnya memenuhi syarat.

  1. Masuk ke portal Azure.
  2. Dari menu sebelah kiri di portal Microsoft Azure, pilih Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
  3. Pilih nama server.
  4. Dari panel server Gambaran Umum, buat catatan Nama server dan Nama untuk masuk admin server. Jika lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini. Nama server Azure Database for PostgreSQL

Langkah 1: Menyambungkan dan menyisipkan data

Gunakan kode berikut untuk menyambungkan dan memuat data menggunakan pernyataan SQL MEMBUAT TABEL dan MASUKKAN KE. Kode ini menggunakan kelas NpgsqlCommand dengan metode:

Penting

Ganti parameter Host, DBName, User, dan Password dengan nilai yang Anda tentukan saat membuat server dan 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();
        }
    }
}

Langkah 2: Membaca data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT. Kode ini menggunakan kelas NpgsqlCommand dengan metode:

Penting

Ganti parameter Host, DBName, User, dan Password dengan nilai yang Anda tentukan saat membuat server dan 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();
        }
    }
}

Langkah 3: Memperbarui data

Gunakan kode berikut untuk menyambungkan dan memperbarui data menggunakan Pernyataan SQL UPDATE. Kode ini menggunakan kelas NpgsqlCommand dengan metode:

Penting

Ganti parameter Host, DBName, User, dan Password dengan nilai yang Anda tentukan saat membuat server dan 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();
        }
    }
}


Langkah 4: Menghapus data

Gunakan kode berikut untuk menyambungkan dan menghapus data menggunakan pernyataan SQL DELETE.

Kode ini menggunakan kelas NpgsqlCommand dengan metode Open() untuk membuat koneksi ke database PostgreSQL. Kemudian, kode menggunakan metode CreateCommand(), mengatur properti CommandText, dan memanggil metode ExecuteNonQuery() untuk menjalankan perintah database.

Penting

Ganti parameter Host, DBName, User, dan Password dengan nilai yang Anda tentukan saat membuat server dan 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();
        }
    }
}

Membersihkan sumber daya

Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Langkah berikutnya