Quickstart: .NET (C#) gebruiken om verbinding te maken met en query's uit te voeren op gegevens in Azure Database for MySQL
VAN TOEPASSING OP: Azure Database for MySQL - enkele server
Belangrijk
Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?
In deze quickstart ziet u hoe u met behulp van een C#-toepassing verbinding maakt met Azure Database voor MySQL. U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen.
Vereisten
Voor deze quickstart hebt u het volgende nodig:
- Een Azure-account met een actief abonnement. Gratis een account maken
- Eén Azure Database for MySQL-server maken met behulp van Azure Portal
of Azure CLI, als u er nog geen hebt. - Voltooi EEN van de onderstaande acties om connectiviteit in te schakelen, afhankelijk van of u openbare toegang of privétoegang hebt.
- Installeer de .NET SDK voor uw platform (Windows, Ubuntu Linux of macOS) voor uw platform.
Actie | Verbindingsmethode | Instructiegids |
---|---|---|
Firewallregels configureren | Openbaar | Portal CLI |
Service-eindpunt configureren | Openbaar | Portal CLI |
Privékoppeling configureren | Particulier | Portal CLI |
Een C#-project maken
Voer in een opdrachtprompt het volgende uit:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Verbindingsgegevens ophalen
Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met de Azure Database voor MySQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.
- Meld u aan bij Azure Portal.
- Klik in het menu aan de linkerkant in Azure Portal op Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
- Klik op de servernaam.
- Ga naar het venster Overzicht van de server en noteer de Servernaam en de Aanmeldingsnaam van de serverbeheerder. Als u uw wachtwoord vergeet, kunt u het wachtwoord in dit venster opnieuw instellen.
Stap 1: gegevens Verbinding maken en invoegen
Gebruik de volgende code om verbinding te maken en de gegevens te laden met behulp van CREATE TABLE
en INSERT INTO
SQL-instructies. De code gebruikt de methoden van de klasse MySqlConnection
:
- OpenAsync() om een verbinding tot stand te brengen met MySQL.
- Met CreateCommand() wordt de eigenschap CommandText ingesteld
- Met de methode ExecuteNonQueryAsync() worden de databaseopdrachten uitgevoerd.
Vervang de parameters Server
, Database
, UserID
en Password
door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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@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 = "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();
}
}
}
Stap 2: Gegevens lezen
Gebruik de volgende code om verbinding te maken en de gegevens te lezen met behulp van de SQL-instructie SELECT
. De code gebruikt de klasse MySqlConnection
met methoden:
- OpenAsync() om een verbinding tot stand te brengen met MySQL.
- CreateCommand() om de eigenschap CommandText in te stellen.
- ExecuteNonQueryAsync() om de databaseopdrachten uit te voeren.
- ReadAsync() om naar de records in de resultaten te gaan. Vervolgens worden in de code GetInt32() en GetString() gebruikt om de waarden in de record te parseren.
Vervang de parameters Server
, Database
, UserID
en Password
door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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();
}
}
}
Stap 3: Gegevens bijwerken
Gebruik de volgende code om verbinding te maken en de gegevens te lezen met behulp van de SQL-instructie UPDATE
. De code gebruikt de klasse MySqlConnection
met methode:
- OpenAsync() om een verbinding tot stand te brengen met MySQL.
- CreateCommand() om de eigenschap CommandText in te stellen
- Met de methode ExecuteNonQueryAsync() worden de databaseopdrachten uitgevoerd.
Vervang de parameters Server
, Database
, UserID
en Password
door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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@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 = "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();
}
}
}
Stap 4: Gegevens verwijderen
Gebruik de volgende code om verbinding te maken en de gegevens te verwijderen met behulp van de SQL-instructie DELETE
.
De code gebruikt de klasse MySqlConnection
met methode
- OpenAsync() om een verbinding tot stand te brengen met MySQL.
- CreateCommand() om de eigenschap CommandText in te stellen.
- Met de methode ExecuteNonQueryAsync() worden de databaseopdrachten uitgevoerd.
Vervang de parameters Server
, Database
, UserID
en Password
door de waarden die u hebt opgegeven tijdens het maken van de server en database.
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@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 = "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();
}
}
}
Resources opschonen
Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes