Udostępnij za pośrednictwem


Szybki start: nawiązywanie połączeń z danymi w usłudze Azure Database for MySQL i wykonywanie na nich zapytań przy użyciu platformy .NET — serwer elastyczny

DOTYCZY: Azure Database for MySQL — serwer elastyczny

W tym przewodniku Szybki start pokazano, jak nawiązać połączenie z wystąpieniem serwera elastycznego usługi Azure Database for MySQL przy użyciu aplikacji w języku C#. Pokazano w nim, jak używać instrukcji języka SQL w celu wysyłania zapytań o dane oraz wstawiania, aktualizowania i usuwania danych w bazie danych.

Wymagania wstępne

W tym przewodniku Szybki start potrzebne są następujące elementy:

Masz problemy? Powiedz nam o tym!

Tworzenie projektu języka C#

W wierszu polecenia uruchom następujące polecenie:

mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector

Pobieranie informacji o połączeniu

Uzyskaj informacje o połączeniu potrzebne do nawiązania połączenia z wystąpieniem serwera elastycznego usługi Azure Database for MySQL. Potrzebna jest w pełni kwalifikowana nazwa serwera i poświadczenia logowania.

  1. Zaloguj się w witrynie Azure Portal.
  2. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby, a następnie wyszukaj utworzony serwer (na przykład mydemoserver).
  3. Wybierz nazwę serwera.
  4. Po przejściu do panelu Przegląd serwera zanotuj nazwę serwera i nazwę logowania administratora serwera. Jeśli zapomnisz hasła, możesz również je zresetować z poziomu tego panelu. Nazwa wystąpienia serwera elastycznego usługi Azure Database for MySQL

Krok 1. Łączenie i wstawianie danych

Użyj poniższego kodu, aby nawiązać połączenie i załadować dane przy użyciu instrukcji CREATE TABLE i INSERT INTO języka SQL. Kod używa metod MySqlConnection klasy:

Zastąp parametry Server, Database, UserID i Password wartościami określonymi podczas tworzenia serwera i bazy danych.

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();
        }
    }
}

Masz jakieś problemy? Daj nam znać.

Krok 2. Odczytywanie danych

Przy użyciu następującego kodu nawiąż połączenie i odczytaj dane za pomocą instrukcji SELECT języka SQL. Kod używa MySqlConnection klasy z metodami:

  • OpenAsync() w celu nawiązania połączenia z bazą danych MySQL.
  • CreateCommand(), aby ustawić właściwość CommandText.
  • ExecuteReaderAsync() w celu uruchomienia poleceń bazy danych.
  • ReadAsync(), aby przejść do rekordów w wynikach. Następnie kod używa metod GetInt32() i GetString() w celu przeanalizowania wartości w rekordzie.

Zastąp parametry Server, Database, UserID i Password wartościami określonymi podczas tworzenia serwera i bazy danych.

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();
        }
    }
}

Masz problemy? Powiedz nam o tym!

Krok 3. Aktualizowanie danych

Przy użyciu następującego kodu nawiąż połączenie i odczytaj dane za pomocą instrukcji UPDATE języka SQL. Kod używa MySqlConnection klasy z metodą :

Zastąp parametry Server, Database, UserID i Password wartościami określonymi podczas tworzenia serwera i bazy danych.

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();
        }
    }
}

Krok 4. Usuwanie danych

Przy użyciu następującego kodu nawiąż połączenie i usuń dane za pomocą instrukcji DELETE języka SQL.

Kod używa MySqlConnection klasy z metodą

Zastąp parametry Server, Database, UserID i Password wartościami określonymi podczas tworzenia serwera i bazy danych.

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();
        }
    }
}

Czyszczenie zasobów

Aby wyczyścić wszystkie zasoby używane w tym przewodniku Szybki start, usuń grupę zasobów przy użyciu następującego polecenia:

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

Następne kroki