Início rápido: Usar o .NET (C#) para se conectar ao Banco de Dados do Azure para MySQL – Servidor Flexível e consultar dados dele
APLICA-SE A: Banco de Dados do Azure para MySQL – Servidor flexível
Este guia de início rápido demonstrará como se conectar a um Servidor Flexível do Banco de Dados do Azure para MySQL usando um aplicativo C#. Ele mostra como usar instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados.
Pré-requisitos
Para este início rápido você precisa:
Uma conta do Azure com uma assinatura ativa.
Caso você não tenha 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 com Servidor Flexível gratuitamente por 12 meses. Para obter mais informações, veja Experimente o Banco de Dados do Azure para MySQL – Servidor Flexível gratuitamente.
Criar uma instância de Servidor Flexível do Banco de Dados do Azure para MySQL usando o portal do Azure
ou a CLI do Azure se ainda não tiver um.Com base em se você está usando o 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).
Está enfrentando problemas? Fale conosco
Criar um projeto C#
Em um prompt de comando, execute:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Obter informações de conexão
Obtenha as informações de conexão necessárias para se conectar à instância do Servidor Flexível do Banco de Dados do Azure para MySQL. Você precisa das credenciais de logon e do nome do servidor totalmente qualificado.
- Faça logon no Portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
- Selecione o nome do servidor.
- No painel Visão Geral do servidor, anote o Nome do servidor e Nome de logon do administrador do servidor. Se você esquecer sua senha, também poderá redefini-la nesse painel.
Etapa 1: conectar e inserir dados
Use o código a seguir para conectar-se e carregar os dados usando instruções SQL CREATE TABLE
e INSERT INTO
. O código usa os métodos da classe MySqlConnection
:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteNonQueryAsync() para executar os comandos de banco de dados.
Substitua os parâmetros Server
, Database
, UserID
e Password
com os valores que você especificou quando criou o servidor e o banco 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();
}
}
}
Está tendo algum problema? Queremos saber.
Etapa 2: Ler dados
Use o código a seguir para conectar-se e carregar os dados usando uma instrução SQL SELECT
. O código usa a classe MySqlConnection
com os métodos:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteReaderAsync() para executar os comandos de banco de dados.
- ReadAsync() para acessar os registros nos resultados. Em seguida, o código usa GetInt32 e GetString para analisar os valores do registro.
Substitua os parâmetros Server
, Database
, UserID
e Password
com os valores que você especificou quando criou o servidor e o banco 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();
}
}
}
Está enfrentando problemas? Fale conosco
Etapa 3: Atualizar dados
Use o código a seguir para conectar-se e carregar os dados usando uma instrução SQL UPDATE
. O código usa a classe MySqlConnection
com os métodos:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteNonQueryAsync() para executar os comandos de banco de dados.
Substitua os parâmetros Server
, Database
, UserID
e Password
com os valores que você especificou quando criou o servidor e o banco 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
Use o código a seguir para conectar-se e excluir os dados usando uma instrução SQL DELETE
.
O código usa a classe MySqlConnection
com os métodos:
- OpenAsync() para estabelecer uma conexão com o MySQL.
- CreateCommand() para definir a propriedade CommandText.
- ExecuteNonQueryAsync() para executar os comandos de banco de dados.
Substitua os parâmetros Server
, Database
, UserID
e Password
com os valores que você especificou quando criou o servidor e o banco 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();
}
}
}
Limpar os recursos
Para limpar todos os recursos usados durante este guia de início rápido, exclua o grupo de recursos usando o seguinte comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes