Schnellstart: Verwenden von .NET (C#) zum Herstellen einer Verbindung und zum Abfragen von Daten in Azure Database for MySQL Flexible Server.

GILT FÜR: Azure Database for MySQL – Flexible Server

In diesem Schnellstart wird gezeigt, wie Sie mithilfe einer C#-Anwendung eine Verbindung mit einer Instanz von Azure Database for MySQL – Flexibler Server herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden.

Voraussetzungen

Für diese Schnellstartanleitung benötigen Sie Folgendes:

Treten Probleme auf? Informieren Sie uns darüber.

Erstellen eines C#-Projekts

Führen Sie an der Eingabeaufforderung Folgendes aus:

mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector

Abrufen von Verbindungsinformationen

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure Database for MySQL Flexible Server-Instanz erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.

  1. Melden Sie sich beim Azure-Portalan.
  2. Wählen Sie im Azure-Portal im linken Menü Alle Ressourcen aus, und suchen Sie dann nach dem Server, den Sie erstellt haben (z.B. mydemoserver).
  3. Wählen Sie den Servernamen aus.
  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen. Azure Database for MySQL flexible server instance name

Schritt 1: Herstellen einer Verbindung und Einfügen von Daten

Verwenden Sie den folgenden Code, um die Daten mit SQL-Anweisungen vom Typ CREATE TABLE und INSERT INTO zu verbinden und zu laden. Für den Code werden die Methoden der MySqlConnection-Klasse verwendet:

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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

Treten Probleme auf? Teilen Sie es uns mit.

Schritt 2: Lesen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ SELECT zu verbinden und zu lesen. Für den Code werden die Methoden der MySqlConnection-Klasse verwendet:

  • OpenAsync() zum Herstellen einer Verbindung mit MySQL
  • CreateCommand() zum Festlegen der CommandText-Eigenschaft
  • ExecuteReaderAsync() zum Ausführen der Datenbankbefehle
  • ReadAsync() für den Zugriff auf die Datensätze in den Ergebnissen Mithilfe von GetInt32 und GetString werden im Code dann die Werte im Datensatz analysiert.

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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

Treten Probleme auf? Informieren Sie uns darüber.

Schritt 3: Aktualisieren von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ UPDATE zu verbinden und zu lesen. Durch den Code werden die Methoden der MySqlConnection-Klasse verwendet:

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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

Schritt 4: Löschen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ DELETE zu verbinden und zu löschen.

Durch den Code werden die Methoden der MySqlConnection-Klasse verwendet:

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe mit dem folgenden Befehl, um alle in dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen:

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

Nächste Schritte