Краткое руководство. Использование .NET (C#) для подключения и запроса данных в База данных Azure для MySQL — гибкий сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — гибкий сервер
В этом кратком руководстве показано, как подключиться к экземпляру гибкого сервера База данных Azure для MySQL с помощью приложения C#. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных.
Необходимые компоненты
Для целей этого краткого руководства понадобится:
Учетная запись Azure с активной подпиской.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. В настоящее время с бесплатной учетной записью Azure можно попробовать База данных Azure для MySQL — гибкий сервер бесплатно в течение 12 месяцев. Дополнительные сведения см. в разделе База данных Azure для MySQL — гибкий сервер бесплатно.
Создание экземпляра гибкого сервера База данных Azure для MySQL с помощью портал Azure
или с помощью Azure CLI, если он еще не создан.Выполнить ОДНО из действий (в зависимости от того, пользуетесь вы общим или частным доступом), чтобы настроить возможность подключения.
Создание базы данных и пользователя без прав администратора.
Установить пакет SDK для .NET для своей платформы (Windows, Ubuntu Linux или macOS).
Возникли проблемы? Поделитесь с нами
Создание проекта C#
В окне командной строки выполните следующую команду.
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Получение сведений о подключении
Получите сведения о подключении, необходимые для подключения к экземпляру гибкого сервера База данных Azure для MySQL. Вам потребуется полное имя сервера и учетные данные для входа.
- Войдите на портал Azure.
- В меню слева на портале Azure выберите Все ресурсы и выполните поиск по имени созданного сервера (например, mydemoserver).
- Выберите имя сервера.
- Запишите имя сервера и имя для входа администратора сервера с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели.
Шаг 1. Подключение и вставка данных
Используйте указанный ниже код для подключения и скачивания данных с помощью инструкций SQL CREATE TABLE
и INSERT INTO
. В коде используются методы класса MySqlConnection
:
- OpenAsync(), чтобы установить соединение с MySQL.
- CreateCommand (), чтобы задать свойство CommandText;
- ExecuteNonQueryAsync(), чтобы выполнять команды базы данных.
Замените параметры Server
, Database
, UserID
и Password
значениями, указанными при создании сервера и базы данных.
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();
}
}
}
Возникли проблемы? Сообщите нам об этом.
Шаг 2. Чтение данных
Используйте указанный ниже код с инструкцией SQL SELECT
для подключения и чтения данных. В коде используется класс MySqlConnection
со следующими методами:
- OpenAsync(), чтобы установить соединение с MySQL.
- CreateCommand (), чтобы задать свойство CommandText;
- ExecuteReaderAsync(), чтобы выполнять команды базы данных.
- ReadAsync(), чтобы перейти к записям в результирующем наборе. Затем используются метод GetInt32 и метод GetString для анализа значений в записи.
Замените параметры Server
, Database
, UserID
и Password
значениями, указанными при создании сервера и базы данных.
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();
}
}
}
Возникли проблемы? Поделитесь с нами
Шаг 3. Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE
для подключения и чтения данных. В коде используется класс MySqlConnection
со следующими методами:
- OpenAsync(), чтобы установить соединение с MySQL.
- CreateCommand(), чтобы задать свойство CommandText;
- ExecuteNonQueryAsync(), чтобы выполнять команды базы данных.
Замените параметры Server
, Database
, UserID
и Password
значениями, указанными при создании сервера и базы данных.
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();
}
}
}
Шаг 4. Удаление данных
Используйте указанный ниже код с инструкцией SQL DELETE
для подключения и удаления данных.
В коде используется класс MySqlConnection
со следующими методами:
- OpenAsync(), чтобы установить соединение с MySQL.
- CreateCommand (), чтобы задать свойство CommandText;
- ExecuteNonQueryAsync(), чтобы выполнять команды базы данных.
Замените параметры Server
, Database
, UserID
и Password
значениями, указанными при создании сервера и базы данных.
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();
}
}
}
Очистка ресурсов
Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes