Mulai Cepat: Menggunakan .NET (C#) untuk menyambungkan dan meminta data di Azure Database for MySQL
BERLAKU UNTUK: Azure Database for MySQL - Server Tunggal
Penting
Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?
Panduan mulai cepat ini menunjukkan cara menyambungkan ke Azure Database for MySQL dengan menggunakan aplikasi C#. Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database.
Prasyarat
Untuk mulai cepat ini, Anda perlu:
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Membuat server tunggal Azure Database for MySQL menggunakan portal Azure
atau Azure CLI jika Anda tidak memilikinya. - Berdasarkan pada apakah Anda menggunakan akses publik atau privat, selesaikan SALAH SATU tindakan di bawah ini untuk mengaktifkan konektivitas.
- Instal .NET SDK untuk platform Anda (Windows, Ubuntu Linux, atau macOS).
Perbuatan | Metode konektivitas | Panduan |
---|---|---|
Mengonfigurasi aturan firewall | Publik | Portal CLI |
Mengonfigurasi Titik Akhir Layanan | Publik | Portal CLI |
Mengonfigurasi tautan privat | Privat | Portal CLI |
Buat proyek C#
Pada perintah, jalankan:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Mendapatkan informasi koneksi
Dapatkan informasi koneksi yang diperlukan untuk terhubung ke Azure Database for MySQL. Anda memerlukan nama server dan kredensial untuk masuk yang sepenuhnya memenuhi syarat.
- Masuk ke portal Azure.
- Pada menu sebelah kiri di portal Microsoft Azure, klik Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
- Klik di nama server.
- Dari panel server Gambaran Umum, buat catatan Nama server dan Nama untuk masuk admin server. Jika lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini.
Langkah 1: Menyambungkan dan menyisipkan data
Gunakan kode berikut untuk menyambungkan dan memuat data dengan menggunakan pernyataan SQL CREATE TABLE
dan INSERT INTO
. Kode ini menggunakan metode kelas MySqlConnection
:
- OpenAsync() untuk membuat sambungan ke MySQL.
- CreateCommand(), menyetel properti CommandText
- ExecuteNonQueryAsync() untuk menjalankan perintah database.
Ganti parameter Server
, Database
, UserID
, dan Password
dengan nilai yang Anda tentukan saat membuat server dan 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();
}
}
}
Langkah 2: Membaca data
Gunakan kode berikut untuk menyambungkan dan membaca data dengan menggunakan SELECT
pernyataan SQL. Kode ini menggunakan kelas MySqlConnection
dengan metode:
- OpenAsync() untuk membuat sambungan ke MySQL.
- CreateCommand() untuk menyetel properti CommandText.
- ExecuteReaderAsync() untuk menjalankan perintah database.
- ReadAsync() untuk melanjutkan ke catatan dalam hasil. Kemudian kode ini menggunakan GetInt32 dan GetString untuk mengurai nilai dalam catatan.
Ganti parameter Server
, Database
, UserID
, dan Password
dengan nilai yang Anda tentukan saat membuat server dan 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();
}
}
}
Langkah 3: Memperbarui data
Gunakan kode berikut untuk menyambungkan dan membaca data dengan menggunakan UPDATE
pernyataan SQL. Kode ini menggunakan kelas MySqlConnection
dengan metode:
- OpenAsync() untuk membuat sambungan ke MySQL.
- CreateCommand() untuk menyetel properti CommandText
- ExecuteNonQueryAsync() untuk menjalankan perintah database.
Ganti parameter Server
, Database
, UserID
, dan Password
dengan nilai yang Anda tentukan saat membuat server dan 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();
}
}
}
Langkah 4: Menghapus data
Gunakan kode berikut untuk menyambungkan dan menghapus data dengan menggunakan DELETE
pernyataan SQL.
Kode ini menggunakan kelas MySqlConnection
dengan metode
- OpenAsync() untuk membuat sambungan ke MySQL.
- CreateCommand() untuk menyetel properti CommandText.
- ExecuteNonQueryAsync() untuk menjalankan perintah database.
Ganti parameter Server
, Database
, UserID
, dan Password
dengan nilai yang Anda tentukan saat membuat server dan 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();
}
}
}
Membersihkan sumber daya
Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes