Rychlý start: Připojení a dotazování dat ve službě Azure Database for MySQL pomocí .NET (C#)
PLATÍ PRO: Jednoúčelový server Azure Database for MySQL
Důležité
Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?
Tento rychlý start ukazuje, jak se připojit ke službě Azure Database for MySQL s použitím aplikace v jazyce C#. Ukazuje, jak pomocí příkazů jazyka SQL dotazovat, vkládat, aktualizovat a odstraňovat data v databázi.
Požadavky
Pro účely tohoto rychlého startu potřebujete:
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Vytvoření jednoúčelového serveru Azure Database for MySQL pomocí webu Azure Portal
nebo Azure CLI , pokud ho nemáte. - Na základě toho, jestli používáte veřejný nebo privátní přístup, dokončete jednu z následujících akcí a povolte připojení.
- Nainstalujte sadu .NET SDK pro vaši platformu (Windows, Ubuntu Linux nebo macOS) pro vaši platformu.
Akce | Metoda připojení | Praktičtí průvodci |
---|---|---|
Konfigurace pravidel brány firewall | Veřejná | Azure Portal Rozhraní příkazového řádku |
Konfigurace koncového bodu služby | Veřejná | Azure Portal Rozhraní příkazového řádku |
Konfigurace privátního propojení | Privátní | Azure Portal Rozhraní příkazového řádku |
Vytvoření projektu C#
Na příkazovém řádku spusťte:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Získání informací o připojení
Získejte informace o připojení potřebné pro připojení ke službě Azure Database for MySQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k webu Azure Portal.
- V nabídce vlevo na webu Azure Portal klikněte na Všechny prostředky a vyhledejte vytvořený server (například mydemoserver).
- Klikněte na název serveru.
- Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.
Krok 1: Připojení a vložení dat
Pomocí následujícího kódu se připojte a načtěte data pomocí CREATE TABLE
příkazů a INSERT INTO
příkazů SQL. Kód používá metody MySqlConnection
třídy:
- OpenAsync() pro navázání připojení k MySQL.
- CreateCommand(), nastaví vlastnost CommandText.
- Spusťte příkazy databáze executeNonQueryAsync( ).
Parametry Server
, Database
, UserID
a Password
nahraďte hodnotami, které jste zadali při vytváření serveru a databáze.
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@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();
}
}
}
Krok 2: Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT
jazyka SQL. Kód používá MySqlConnection
třídu s metodami:
- OpenAsync() pro navázání připojení k MySQL.
- CreateCommand() k nastavení vlastnosti CommandText.
- ExecuteReaderAsync() pro spuštění databázových příkazů.
- ReadAsync() pro přechod na záznamy ve výsledcích. Potom tento kód použije GetInt32 a GetString k parsování hodnot v záznamu.
Parametry Server
, Database
, UserID
a Password
nahraďte hodnotami, které jste zadali při vytváření serveru a databáze.
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();
}
}
}
Krok 3: Aktualizace dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu UPDATE
jazyka SQL. Kód používá MySqlConnection
třídu s metodou:
- OpenAsync() pro navázání připojení k MySQL.
- CreateCommand() k nastavení vlastnosti CommandText
- Spusťte příkazy databáze executeNonQueryAsync( ).
Parametry Server
, Database
, UserID
a Password
nahraďte hodnotami, které jste zadali při vytváření serveru a databáze.
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@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();
}
}
}
Krok 4: Odstranění dat
Pomocí následujícího kódu se připojte a odstraňte data s využitím příkazu DELETE
jazyka SQL.
Kód používá MySqlConnection
třídu s metodou.
- OpenAsync() pro navázání připojení k MySQL.
- CreateCommand() k nastavení vlastnosti CommandText.
- Spusťte příkazy databáze executeNonQueryAsync( ).
Parametry Server
, Database
, UserID
a Password
nahraďte hodnotami, které jste zadali při vytváření serveru a databáze.
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@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();
}
}
}
Vyčištění prostředků
Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes