Snabbstart: Använd .NET (C#) för att ansluta och fråga efter data i Azure Database for MySQL – flexibel server
Den här snabbstarten visar hur du ansluter till en Azure Database for MySQL – flexibel serverinstans 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.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Med ett kostnadsfritt Azure-konto kan du prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Använda ett kostnadsfritt Azure-konto för att prova Azure Database for MySQL – flexibel server kostnadsfritt.
- Skapa en Azure Database for MySQL – flexibel serverinstans med hjälp av snabbstarten: Skapa en instans av Azure Database for MySQL med Azure Portal
eller snabbstart: Skapa en instans av Azure Database for MySQL – flexibel server med hjälp av Azure CLI om du inte har en. - Baserat på om du använder offentlig eller privat åtkomst slutför du en av åtgärderna nedan för att aktivera anslutningen.
- Skapa en databas och icke-administratörsanvändare
- Installera .NET SDK för din plattform (Windows, Ubuntu Linux eller macOS) för din plattform.
Har du problem? Berätta för oss
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
Hämta den anslutningsinformation som behövs för att ansluta till Azure Database for MySQL – flexibel serverinstans. Du behöver det fullständiga servernamnet och inloggningsuppgifter.
- Logga in på Azure-portalen.
- På den vänstra menyn i Azure Portal väljer du Alla resurser och söker sedan efter den server som du har skapat (till exempel mydemoserver).
- Välj 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",
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();
}
}
}
Har du några problem? Berätta för oss.
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();
}
}
}
Har du problem? Berätta för oss
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",
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",
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