Dela via


Snabbstart: Använd .NET (C#) för att ansluta och fråga efter data i Azure Database for MySQL – flexibel server

Den här snabbstarten visar hur du ansluter till en Azure Database for MySQL – flexibel serverinstans med hjälp av ett C#-program. Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen.

Förutsättningar

För den här snabbstarten behöver du:

  • Ett Azure-konto med en aktiv prenumeration.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Med ett kostnadsfritt Azure-konto kan du prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Använda ett kostnadsfritt Azure-konto för att prova Azure Database for MySQL – flexibel server kostnadsfritt.

Har du problem? Berätta för oss

Skapa ett C#-projekt

Kör följande i en kommandotolk:

mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector

Hämta anslutningsinformation

Hämta den anslutningsinformation som behövs för att ansluta till Azure Database for MySQL – flexibel serverinstans. Du behöver det fullständiga servernamnet och inloggningsuppgifter.

  1. Logga in på Azure-portalen.
  2. På den vänstra menyn i Azure Portal väljer du Alla resurser och söker sedan efter den server som du har skapat (till exempel mydemoserver).
  3. Välj servernamnet.
  4. På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen. Skärmbild av Azure Database for MySQL – flexibel serverinstansnamn.

Steg 1: Ansluta och infoga data

Använd följande kod för att ansluta och läsa in data med hjälp CREATE TABLE av sql-instruktioner INSERT INTO . Koden använder klassens MySqlConnection metoder:

Ersätt parametrarna Server, Database, UserID och Password med de värden som du angav när du skapade servern och databasen.

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

Har du några problem? Berätta för oss.

Steg 2: Läsa data

Använd följande kod för att ansluta och läsa data med SQL-instruktionen SELECT. Koden använder MySqlConnection klassen med metoder:

  • OpenAsync() för att upprätta en anslutning till MySQL.
  • CreateCommand() för att ange egenskapen CommandText.
  • ExecuteReaderAsync() för att köra databaskommandona.
  • ReadAsync() för att gå vidare till posterna i resultatet. Koden använder sedan GetInt32 och GetString för att parsa värdena i posten.

Ersätt parametrarna Server, Database, UserID och Password med de värden som du angav när du skapade servern och databasen.

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

Har du problem? Berätta för oss

Steg 3: Uppdatera data

Använd följande kod för att ansluta och läsa data med SQL-instruktionen UPDATE. Koden använder MySqlConnection klassen med metoden:

Ersätt parametrarna Server, Database, UserID och Password med de värden som du angav när du skapade servern och databasen.

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

Steg 4: Ta bort data

Använd följande kod för att ansluta och ta bort data med SQL-instruktionen DELETE.

Koden använder MySqlConnection klassen med -metoden

Ersätt parametrarna Server, Database, UserID och Password med de värden som du angav när du skapade servern och databasen.

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

Rensa resurser

Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:

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