Inicio rápido: Uso de .NET (C#) para conectarse y consultar datos en Servidor flexible de Azure Database for MySQL
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 el Servidor flexible de Azure Database for MySQL gratis durante 12 meses. Para más información, consulte Uso de una cuenta gratuita de Azure para probar Azure Database for MySQL: servidor flexible de forma gratuita.
- Creación de una instancia de servidor flexible de Azure Database for MySQL mediante Inicio rápido: Creación de una instancia de Azure Database for MySQL con Azure Portal
o Inicio rápido: Creación de una instancia de servidor flexible de Azure Database for MySQL con la CLI de Azure, si no tiene ninguna. - 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