Compartilhar via


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:

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.

  1. Faça logon no Portal do Azure.
  2. No menu à esquerda no portal do Azure, selecione Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
  3. Selecione o nome do servidor.
  4. 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. Nome da instância do Servidor Flexível do Banco de Dados do Azure para MySQL

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:

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:

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:

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

Próximas etapas