Guia de início rápido: use o .NET (C#) para conectar e consultar dados no Banco de Dados do Azure para MySQL - Servidor Flexível
APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível
Este guia de início rápido demonstra como se conectar a uma instância do Servidor Flexível do Banco de Dados do Azure para MySQL usando um aplicativo C#. Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados.
Pré-requisitos
Para este guia de início rápido, você precisa:
Uma conta do Azure com uma subscrição ativa.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar. Atualmente, com uma conta gratuita do Azure, você pode experimentar o Banco de Dados do Azure para MySQL - Servidor Flexível gratuitamente por 12 meses. Para obter mais informações, consulte Experimente o Banco de Dados do Azure para MySQL - Servidor flexível gratuitamente.
Criar um Banco de Dados do Azure para a instância do Servidor Flexível MySQL usando o portal do Azure
ou CLI do Azure, se você não tiver uma.Com base no fato de você estar usando acesso público ou privado, conclua UMA das ações abaixo para habilitar a conectividade.
Instale o SDK do .NET para sua plataforma (Windows, Ubuntu Linux ou macOS) para sua plataforma.
Criar um projeto em C#
Numa linha de comandos, execute:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Obter informações da ligação
Obtenha as informações de conexão necessárias para se conectar ao Banco de Dados do Azure para a instância do Servidor Flexível MySQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.
- Inicie sessão no portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e procure o servidor que você criou (como mydemoserver).
- Selecione o nome do servidor.
- No painel Descrição geral do servidor, tome nota do Nome do servidor e do Nome de início de sessão de administrador do servidor. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel.
Etapa 1: Conectar e inserir dados
Use o código a seguir para conectar e carregar os dados usando CREATE TABLE
instruções e INSERT INTO
SQL. O código usa os métodos da MySqlConnection
classe:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand(), define a propriedade CommandText
- ExecuteNonQueryAsync() para executar os comandos do banco de dados.
Substitua os parâmetros Server
, Database
, UserID
, e Password
pelos valores que especificou quando criar o servidor e a base de dados.
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();
}
}
}
Tem algum problema? Deixe-nos saber.
Passo 2: Ler dados
Utilize o código seguinte para se ligar e ler os dados com uma instrução SQL SELECT
. O código usa a MySqlConnection
classe com métodos:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteReaderAsync() para executar os comandos do banco de dados.
- ReadAsync() para avançar para os registros nos resultados. Em seguida, o código utiliza GetInt32 e GetString para analisar os valores do registo.
Substitua os parâmetros Server
, Database
, UserID
, e Password
pelos valores que especificou quando criar o servidor e a base de dados.
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();
}
}
}
Etapa 3: Atualizar dados
Utilize o código seguinte para se ligar e ler os dados com uma instrução SQL UPDATE
. O código usa a classe com método MySqlConnection
:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText
- ExecuteNonQueryAsync() para executar os comandos do banco de dados.
Substitua os parâmetros Server
, Database
, UserID
, e Password
pelos valores que especificou quando criar o servidor e a base de dados.
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();
}
}
}
Etapa 4: Excluir dados
Utilize o código seguinte para se ligar e eliminar os dados com uma instrução SQL DELETE
.
O código usa a MySqlConnection
classe com método
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteNonQueryAsync() para executar os comandos do banco de dados.
Substitua os parâmetros Server
, Database
, UserID
, e Password
pelos valores que especificou quando criar o servidor e a base de dados.
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();
}
}
}
Clean up resources (Limpar recursos)
Para limpar todos os recursos usados durante este início rápido, exclua o grupo de recursos usando o seguinte comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes