Mulai Cepat: Menggunakan .NET (C#) untuk menyambungkan dan meminta data di Azure Database for MySQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for MySQL - Server Fleksibel

Mulai cepat ini menunjukkan cara menyambungkan ke instans server fleksibel Azure Database for MySQL dengan menggunakan aplikasi C#. Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database.

Prasyarat

Untuk mulai cepat ini, Anda perlu:

Mengalami masalah? Beri tahu kami

Buat proyek C#

Pada perintah, jalankan:

mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector

Mendapatkan informasi koneksi

Dapatkan informasi koneksi yang diperlukan untuk menyambungkan ke instans server fleksibel Azure Database for MySQL. 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. Azure Database for MySQL flexible server instance name

Langkah 1: Menyambungkan dan menyisipkan data

Gunakan kode berikut untuk menyambungkan dan memuat data dengan menggunakan pernyataan SQL CREATE TABLE dan INSERT INTO. Kode ini menggunakan metode kelas MySqlConnection:

Ganti parameter Server, Database, UserID, dan Password dengan nilai yang Anda tentukan saat membuat server dan database.

using System;
using System.Threading.Tasks;
using MySqlConnector;

namespace AzureMySqlExample
{
    class MySqlCreate
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "DROP TABLE IF EXISTS inventory;";
                    await command.ExecuteNonQueryAsync();
                    Console.WriteLine("Finished dropping table (if existed)");

                    command.CommandText = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
                    await command.ExecuteNonQueryAsync();
                    Console.WriteLine("Finished creating table");

                    command.CommandText = @"INSERT INTO inventory (name, quantity) VALUES (@name1, @quantity1),
                        (@name2, @quantity2), (@name3, @quantity3);";
                    command.Parameters.AddWithValue("@name1", "banana");
                    command.Parameters.AddWithValue("@quantity1", 150);
                    command.Parameters.AddWithValue("@name2", "orange");
                    command.Parameters.AddWithValue("@quantity2", 154);
                    command.Parameters.AddWithValue("@name3", "apple");
                    command.Parameters.AddWithValue("@quantity3", 100);

                    int rowCount = await command.ExecuteNonQueryAsync();
                    Console.WriteLine(String.Format("Number of rows inserted={0}", rowCount));
                }

                // connection will be closed by the 'using' block
                Console.WriteLine("Closing connection");
            }

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Memiliki masalah? Beri tahu kami.

Langkah 2: Membaca data

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

  • OpenAsync() untuk membuat sambungan ke MySQL.
  • CreateCommand() untuk menyetel properti CommandText.
  • ExecuteReaderAsync() untuk menjalankan perintah database.
  • ReadAsync() untuk melanjutkan ke catatan dalam hasil. Kemudian kode ini menggunakan GetInt32 dan GetString untuk mengurai nilai dalam catatan.

Ganti parameter Server, Database, UserID, dan Password dengan nilai yang Anda tentukan saat membuat server dan database.

using System;
using System.Threading.Tasks;
using MySqlConnector;

namespace AzureMySqlExample
{
    class MySqlRead
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER@YOUR-SERVER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM inventory;";

                    using (var reader = await command.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            Console.WriteLine(string.Format(
                                "Reading from table=({0}, {1}, {2})",
                                reader.GetInt32(0),
                                reader.GetString(1),
                                reader.GetInt32(2)));
                        }
                    }
                }

                Console.WriteLine("Closing connection");
            }

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Mengalami masalah? Beri tahu kami

Langkah 3: Memperbarui data

Gunakan kode berikut untuk menyambungkan dan membaca data dengan menggunakan UPDATEpernyataan SQL. Kode ini menggunakan kelas MySqlConnection dengan metode:

Ganti parameter Server, Database, UserID, dan Password dengan nilai yang Anda tentukan saat membuat server dan database.

using System;
using System.Threading.Tasks;
using MySqlConnector;

namespace AzureMySqlExample
{
    class MySqlUpdate
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "UPDATE inventory SET quantity = @quantity WHERE name = @name;";
                    command.Parameters.AddWithValue("@quantity", 200);
                    command.Parameters.AddWithValue("@name", "banana");

                    int rowCount = await command.ExecuteNonQueryAsync();
                    Console.WriteLine(String.Format("Number of rows updated={0}", rowCount));
                }

                Console.WriteLine("Closing connection");
            }

            Console.WriteLine("Press RETURN to exit");
            Console.ReadLine();
        }
    }
}

Langkah 4: Menghapus data

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

Kode ini menggunakan kelas MySqlConnection dengan metode

Ganti parameter Server, Database, UserID, dan Password dengan nilai yang Anda tentukan saat membuat server dan database.

using System;
using System.Threading.Tasks;
using MySqlConnector;

namespace AzureMySqlExample
{
    class MySqlDelete
    {
        static async Task Main(string[] args)
        {
            var builder = new MySqlConnectionStringBuilder
            {
                Server = "YOUR-SERVER.mysql.database.azure.com",
                Database = "YOUR-DATABASE",
                UserID = "USER",
                Password = "PASSWORD",
                SslMode = MySqlSslMode.Required,
            };

            using (var conn = new MySqlConnection(builder.ConnectionString))
            {
                Console.WriteLine("Opening connection");
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    command.CommandText = "DELETE FROM inventory WHERE name = @name;";
                    command.Parameters.AddWithValue("@name", "orange");

                    int rowCount = await command.ExecuteNonQueryAsync();
                    Console.WriteLine(String.Format("Number of rows deleted={0}", rowCount));
                }

                Console.WriteLine("Closing connection");
            }

            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