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:
Konto platformy Azure z aktywną subskrypcją.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure. Obecnie za pomocą bezpłatnego konta platformy Azure możesz wypróbować usługę Azure Database for MySQL — serwer elastyczny bezpłatnie przez 12 miesięcy. Aby uzyskać więcej informacji, zobacz Wypróbuj bezpłatnie usługę Azure Database for MySQL — serwer elastyczny.
Tworzenie wystąpienia serwera elastycznego usługi Azure Database for MySQL przy użyciu witryny Azure Portal
lub interfejs wiersza polecenia platformy Azure, jeśli go nie masz.Na podstawie tego, czy używasz dostępu publicznego czy prywatnego, wykonaj jedną z poniższych akcji, aby włączyć łączność.
Tworzenie bazy danych i użytkownika niebędącego administratorem
Zainstaluj zestaw SDK platformy .NET dla swojej platformy (Windows, Ubuntu Linux lub macOS).
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.
- Zaloguj się w witrynie Azure Portal.
- W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby, a następnie wyszukaj utworzony serwer (na przykład mydemoserver).
- Wybierz nazwę serwera.
- 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.
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:
- OpenAsync() w celu nawiązania połączenia z bazą danych MySQL.
- CreateCommand(), ustawia właściwość CommandText
- ExecuteNonQueryAsync(), aby uruchomić polecenia bazy danych.
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ą :
- OpenAsync() w celu nawiązania połączenia z bazą danych MySQL.
- CreateCommand() w celu ustawienia właściwości CommandText
- ExecuteNonQueryAsync(), aby uruchomić polecenia bazy danych.
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ą
- OpenAsync() w celu nawiązania połączenia z bazą danych MySQL.
- CreateCommand(), aby ustawić właściwość CommandText.
- ExecuteNonQueryAsync(), aby uruchomić polecenia bazy danych.
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