Snabbstart: Använd .NET (C#) för att ansluta och fråga efter data i Azure Database for MySQL
GÄLLER FÖR: Azure Database for MySQL – enskild server
Viktigt!
Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?
Den här snabbstarten visar hur du ansluter till en Azure Database for MySQL med hjälp av ett C#-program. Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen.
Förutsättningar
För den här snabbstarten behöver du:
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Skapa en enskild Azure Database for MySQL-server med Hjälp av Azure-portalen
eller Azure CLI om du inte har något. - Baserat på om du använder offentlig eller privat åtkomst slutför du en av åtgärderna nedan för att aktivera anslutningen.
- Installera .NET SDK för din plattform (Windows, Ubuntu Linux eller macOS) för din plattform.
Åtgärd | Anslutningsmetod | Instruktionsguide |
---|---|---|
Konfigurera brandväggsregler | Offentliga | Portal CLI |
Konfigurera tjänstslutpunkt | Offentliga | Portal CLI |
Konfigurera privat länk | Privat | Portal CLI |
Skapa ett C#-projekt
Kör följande i en kommandotolk:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Hämta anslutningsinformation
Skaffa den information som du behöver för att ansluta till Azure Database för MySQL. Du behöver det fullständiga servernamnet och inloggningsuppgifter.
- Logga in på Azure-portalen.
- På den vänstra menyn i Azure Portal klickar du på Alla resurser. Sök sedan efter den server som du skapade (till exempel mydemoserver).
- Klicka på servernamnet.
- På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen.
Steg 1: Ansluta och infoga data
Använd följande kod för att ansluta och läsa in data med hjälp CREATE TABLE
av sql-instruktioner INSERT INTO
. Koden använder klassens MySqlConnection
metoder:
- OpenAsync() för att upprätta en anslutning till MySQL.
- CreateCommand(), anger egenskapen CommandText
- ExecuteNonQueryAsync() för att köra databaskommandona.
Ersätt parametrarna Server
, Database
, UserID
och Password
med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Steg 2: Läsa data
Använd följande kod för att ansluta och läsa data med SQL-instruktionen SELECT
. Koden använder MySqlConnection
klassen med metoder:
- OpenAsync() för att upprätta en anslutning till MySQL.
- CreateCommand() för att ange egenskapen CommandText.
- ExecuteReaderAsync() för att köra databaskommandona.
- ReadAsync() för att gå vidare till posterna i resultatet. Koden använder sedan GetInt32 och GetString för att parsa värdena i posten.
Ersätt parametrarna Server
, Database
, UserID
och Password
med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Steg 3: Uppdatera data
Använd följande kod för att ansluta och läsa data med SQL-instruktionen UPDATE
. Koden använder MySqlConnection
klassen med metoden:
- OpenAsync() för att upprätta en anslutning till MySQL.
- CreateCommand() för att ange egenskapen CommandText
- ExecuteNonQueryAsync() för att köra databaskommandona.
Ersätt parametrarna Server
, Database
, UserID
och Password
med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Steg 4: Ta bort data
Använd följande kod för att ansluta och ta bort data med SQL-instruktionen DELETE
.
Koden använder MySqlConnection
klassen med -metoden
- OpenAsync() för att upprätta en anslutning till MySQL.
- CreateCommand() för att ange egenskapen CommandText.
- ExecuteNonQueryAsync() för att köra databaskommandona.
Ersätt parametrarna Server
, Database
, UserID
och Password
med de värden som du angav när du skapade servern och databasen.
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();
}
}
}
Rensa resurser
Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes