Azure Database for MySQL: Verwenden von .NET (C#) zum Herstellen einer Verbindung und Abfragen von DatenAzure Database for MySQL: Use .NET (C#) to connect and query data

Dieser Schnellstart zeigt, wie Sie mit einer C#-Anwendung eine Verbindung mit einer Azure Database for MySQL-Instanz herstellen.This quickstart demonstrates how to connect to an Azure Database for MySQL by using a C# application. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden.It shows how to use SQL statements to query, insert, update, and delete data in the database. Bei den Schritten in diesem Artikel wird davon ausgegangen, dass Sie mit der C#-Entwicklung vertraut sind, aber noch keine Erfahrung mit Azure Database for MySQL haben.This topic assumes that you are familiar with developing using C# and that you are new to working with Azure Database for MySQL.

VoraussetzungenPrerequisites

In diesem Schnellstart werden die Ressourcen, die in den folgenden Anleitungen erstellt wurden, als Startpunkt verwendet:This quickstart uses the resources created in either of these guides as a starting point:

Außerdem benötigen Sie Folgendes:You also need to:

  • Installieren Sie .NET.Install .NET. Führen Sie die Schritte aus dem verlinkten Artikel durch, um .NET für Ihre Plattform (Windows, Ubuntu Linux oder macOS) zu installieren.Follow the steps in the linked article to install .NET specifically for your platform (Windows, Ubuntu Linux, or macOS).
  • Installieren Sie Visual Studio.Install Visual Studio.

Erstellen eines C#-ProjektsCreate a C# project

Führen Sie an der Eingabeaufforderung Folgendes aus:At a command prompt, run:

mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector

Abrufen von VerbindungsinformationenGet connection information

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure SQL-Datenbank für MySQL erforderlich sind.Get the connection information needed to connect to the Azure Database for MySQL. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.You need the fully qualified server name and login credentials.

  1. Melden Sie sich beim Azure-Portalan.Log in to the Azure portal.
  2. Klicken Sie im Azure-Portal im linken Menü auf Alle Ressourcen, und suchen Sie dann nach dem soeben erstellten Server, z.B. mydemoserver.From the left-hand menu in Azure portal, click All resources, and then search for the server you have created (such as mydemoserver).
  3. Klicken Sie auf den Servernamen.Click the server name.
  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators.From the server's Overview panel, make a note of the Server name and Server admin login name. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen.If you forget your password, you can also reset the password from this panel. Servername für Azure-Datenbank für MySQLAzure Database for MySQL server name

Herstellen der Verbindung, Erstellen der Tabelle und Einfügen von DatenConnect, create table, and insert data

Verwenden Sie den folgenden Code, um die Daten mit SQL-Anweisungen vom Typ CREATE TABLE und INSERT INTO zu verbinden und zu laden.Use the following code to connect and load the data by using CREATE TABLE and INSERT INTO SQL statements. Im Code wird die Klasse MySqlConnection mit der OpenAsync()-Methode verwendet, um eine Verbindung mit MySQL herzustellen.The code uses the MySqlConnection class with method OpenAsync() to establish a connection to MySQL. Anschließend wird im Code die CreateCommand()-Methode verwendet, die CommandText-Eigenschaft festgelegt und die ExecuteNonQueryAsync()-Methode aufgerufen, um die Datenbankbefehle auszuführen.Then the code uses method CreateCommand(), sets the CommandText property, and calls method ExecuteNonQueryAsync() to run the database commands.

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.Replace the Server, Database, UserID, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

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

Lesen von DatenRead data

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ SELECT zu verbinden und zu lesen.Use the following code to connect and read the data by using a SELECT SQL statement. Im Code wird die MySqlConnection-Klasse mit der OpenAsync()-Methode verwendet, um eine Verbindung mit MySQL herzustellen.The code uses the MySqlConnection class with method OpenAsync() to establish a connection to MySQL. Anschließend werden im Code die Methoden CreateCommand() und ExecuteReaderAsync() verwendet, um die Datenbankbefehle auszuführen.Then the code uses method CreateCommand() and method ExecuteReaderAsync() to run the database commands. Als Nächstes wird im Code ReadAsync() verwendet, um auf die Datensätze in den Ergebnissen zuzugreifen.Next the code uses ReadAsync() to advance to the records in the results. Mithilfe von GetInt32 und GetString werden im Code dann die Werte im Datensatz analysiert.Then the code uses GetInt32 and GetString to parse the values in the record.

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.Replace the Server, Database, UserID, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

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

Aktualisieren von DatenUpdate data

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ UPDATE zu verbinden und zu lesen.Use the following code to connect and read the data by using an UPDATE SQL statement. Im Code wird die MySqlConnection-Klasse mit der OpenAsync()-Methode verwendet, um eine Verbindung mit MySQL herzustellen.The code uses the MySqlConnection class with method OpenAsync() to establish a connection to MySQL. Anschließend wird im Code die CreateCommand()-Methode verwendet, die CommandText-Eigenschaft festgelegt und die ExecuteNonQueryAsync()-Methode aufgerufen, um die Datenbankbefehle auszuführen.Then the code uses method CreateCommand(), sets the CommandText property, and calls method ExecuteNonQueryAsync() to run the database commands.

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.Replace the Server, Database, UserID, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

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

Löschen von DatenDelete data

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ DELETE zu verbinden und zu löschen.Use the following code to connect and delete the data by using a DELETE SQL statement.

Im Code wird die MySqlConnection-Klasse mit der OpenAsync()-Methode verwendet, um eine Verbindung mit MySQL herzustellen.The code uses the MySqlConnection class with method OpenAsync() to establish a connection to MySQL. Anschließend wird im Code die CreateCommand()-Methode verwendet, die CommandText-Eigenschaft festgelegt und die ExecuteNonQueryAsync()-Methode aufgerufen, um die Datenbankbefehle auszuführen.Then the code uses method CreateCommand(), sets the CommandText property, and calls method ExecuteNonQueryAsync() to run the database commands.

Ersetzen Sie die Parameter Server, Database, UserID und Password durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.Replace the Server, Database, UserID, and Password parameters with the values that you specified when you created the server and database.

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

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

Nächste SchritteNext steps