Inicio rápido: Uso de .NET (C#) para conectarse y consultar datos en Servidor flexible de Azure Database for MySQL
SE APLICA A: Azure Database for MySQL: Servidor flexible
En este inicio rápido se muestra cómo conectarse a una instancia de servidor flexible de Azure Database for MySQL mediante una aplicación de C#. Se indica cómo usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos.
Requisitos previos
Para esta guía de inicio rápido, necesitará lo siguiente:
Una cuenta de Azure con una suscripción activa.
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar. Actualmente, con una cuenta gratuita de Azure, puede probar Azure Database for MySQL: servidor flexible gratis durante 12 meses. Para más información, vea Prueba de Azure Database for MySQL: servidor flexible de forma gratuita.
Creación de una instancia de servidor flexible de Azure Database for MySQL mediante Azure Portal
o la CLI de Azure si no tiene uno.En función de si usa el acceso público o privado, complete UNA de las acciones siguientes para habilitar la conectividad.
Creación de una base de datos y un usuario que no sea administrador
Instale .NET SDK para su plataforma (Windows, Ubuntu Linux o macOS).
¿Tiene problemas? Háganoslo saber
Cree un proyecto de C#
En un símbolo del sistema, ejecute:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Obtención de información sobre la conexión
Obtenga la información de conexión necesaria para conectarse a la instancia del Servidor flexible de Azure Database for MySQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.
- Inicie sesión en Azure Portal.
- En el menú izquierdo de Azure Portal, seleccione Todos los recursos y, luego, busque el servidor que ha creado, por ejemplo, mydemoserver.
- Seleccione el nombre del servidor.
- En el panel Información general del servidor, anote el nombre del servidor y el nombre de inicio de sesión del administrador del servidor. Si olvida la contraseña, puede restablecerla en este panel.
Paso 1: Conexión e inserción de datos
Use el código siguiente para conectarse y cargar los datos mediante las instrucciones SQL CREATE TABLE
y INSERT INTO
. El código usa los métodos de la clase MySqlConnection
:
- OpenAsync() para establecer una conexión con MySQL.
- CreateCommand() para establecer la propiedad CommandText.
- ExecuteNonQueryAsync() para ejecutar los comandos de base de datos.
Reemplace los parámetros Server
, Database
, UserID
y Password
por los valores especificados al crear el servidor y la base de datos.
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();
}
}
}
¿Tiene algún problema? Cuéntenoslo.
Paso 2: Lectura de datos
Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT
. El código usa la clase MySqlConnection
con métodos:
- OpenAsync() para establecer una conexión con MySQL.
- CreateCommand() para establecer la propiedad CommandText.
- ExecuteReaderAsync() para ejecutar los comandos de base de datos.
- ReadAsync() para avanzar a los registros de los resultados. A continuación, el código usa GetInt32() y GetString() para analizar los valores del registro.
Reemplace los parámetros Server
, Database
, UserID
y Password
por los valores especificados al crear el servidor y la base de datos.
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();
}
}
}
¿Tiene problemas? Háganoslo saber
Paso 3: Actualización de datos
Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL UPDATE
. El código usa la clase MySqlConnection
con el método:
- OpenAsync() para establecer una conexión con MySQL.
- CreateCommand() para establecer la propiedad CommandText.
- ExecuteNonQueryAsync() para ejecutar los comandos de base de datos.
Reemplace los parámetros Server
, Database
, UserID
y Password
por los valores especificados al crear el servidor y la base de datos.
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();
}
}
}
Paso 4: Eliminación de datos
Use el código siguiente para conectarse y eliminar los datos mediante la instrucción SQL DELETE
.
El código usa la clase MySqlConnection
con el método
- OpenAsync() para establecer una conexión con MySQL.
- CreateCommand() para establecer la propiedad CommandText.
- ExecuteNonQueryAsync() para ejecutar los comandos de base de datos.
Reemplace los parámetros Server
, Database
, UserID
y Password
por los valores especificados al crear el servidor y la base de datos.
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();
}
}
}
Limpieza de recursos
Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes