إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح هذا التشغيل السريع كيفية الاتصال بمثيل Azure Database for MySQL Flexible Server باستخدام تطبيق C#. توضح طريقة استخدام عبارات SQL الاستعلام عن البيانات وإدراجها وتحديثها وحذفها في قاعدة البيانات.
المتطلبات الأساسية
ستتعرف في هذا البدء السريع على:
- حساب Azure مع اشتراك نشط.
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ. حاليا، باستخدام حساب Azure المجاني، يمكنك تجربة Azure Database for MySQL - Flexible Server مجانا لمدة 12 شهرا. لمزيد من المعلومات، راجع استخدام حساب Azure المجاني لتجربة Azure Database for MySQL - Flexible Server مجانا.
- إنشاء قاعدة بيانات Azure لمثيل MySQL Flexible Server باستخدام:
- بناء على ما إذا كنت تستخدم الوصول العام أو الخاص، قم بإكمال أحد الإجراءات التالية لتمكين الاتصال.
- إنشاء مستخدمين في قاعدة بيانات Azure لصالح MySQL
- قم بتثبيت .NET SDK للنظام الأساسي الخاص بك(Windows أو Ubunt Linuxأو macOS) للنظام الأساسي الخاص بك.
إنشاء مشروع #C
في موجه الأوامر، قم بتشغيل:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
الحصول على معلومات الاتصال
احصل على معلومات الاتصال المطلوبة للاتصال بمثيل Azure Database for MySQL Flexible Server. أنت بحاجة إلى اسم الخادم المؤهل بالكامل وبيانات اعتماد تسجيل الدخول.
سجّل الدخول إلى مدخل Azure.
من القائمة اليسرى في مدخل Azure، انقر فوق كافة الموارد،ثم ابحث عن الخادم الذي أنشأته (مثل mydemoserver).
حدد اسم الخادم.
من لوحة نظرة عامة على الخادم، دوّن ملاحظة عن اسم الخادم واسم تسجيل دخول مسؤول الخادم. إذا نسيت كلمة المرور، يمكنك أيضًا إعادة تعيين كلمة المرور من هذه اللوحة.
الخطوة 1: الاتصال بالبيانات وإدراجها
استخدم الأكواد التالية للاتصال وتحميل البيانات باستخدام عبارات CREATE TABLE وINSERT INTO SQL. يستخدم الكود أساليب MySqlConnection الفئة:
- OpenAsync() لإنشاء اتصال بـMySQL.
- يُحدد CreateCommand() الخاصية CommandText.
- ExecuteNonQueryAsync()لتشغيل أوامر قاعدة البيانات.
استبدل المعلمات Server وDatabase و UserID وPassword بالقيم التي حددتها عند إنشاء الخادم وقاعدة البيانات.
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();
}
}
}
هل تواجه أي مشاكل؟ أبلغنا بها.
الخطوة 2: قراءة البيانات
استخدم الكود التالي للاتصال وقراءة البيانات باستخدام عبارة SQL SELECT. يستخدم الكود MySqlConnection الفئة مع أساليب:
- OpenAsync() لإنشاء اتصال بـMySQL.
- يُحدد CreateCommand() الخاصية CommandText.
- ExecuteReaderAsync() لتشغيل أوامر قاعدة البيانات.
- ReadAsync() للتقدم إلى السجلات في النتائج. ثم التعليمة البرمجية تستخدم GetInt32 وGetString لتحليل القيم الموجودة في السجل.
استبدل المعلمات Server وDatabase و UserID وPassword بالقيم التي حددتها عند إنشاء الخادم وقاعدة البيانات.
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();
}
}
}
الخطوة الثالثة: تحديث البيانات
استخدم الكود التالي للاتصال وقراءة البيانات باستخدام عبارة SQL UPDATE. الكود يستخدم الفئة MySqlConnection مع الأسلوب:
- OpenAsync() لإنشاء اتصال بـMySQL.
- يُحدد CreateCommand() لتعيين الخاصية CommandText.
- ExecuteNonQueryAsync()لتشغيل أوامر قاعدة البيانات.
استبدل المعلمات Server وDatabase و UserID وPassword بالقيم التي حددتها عند إنشاء الخادم وقاعدة البيانات.
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();
}
}
}
الخطوة الرابعة: حذف البيانات
استخدم الكود التالي للاتصال وقراءة البيانات باستخدام عبارة SQL DELETE.
الكود يستخدم الفئة MySqlConnection مع الأسلوب
- OpenAsync() لإنشاء اتصال بـMySQL.
- يُحدد CreateCommand() الخاصية CommandText.
- ExecuteNonQueryAsync()لتشغيل أوامر قاعدة البيانات.
استبدل المعلمات Server وDatabase و UserID وPassword بالقيم التي حددتها عند إنشاء الخادم وقاعدة البيانات.
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();
}
}
}
تنظيف الموارد
لتنظيف جميع الموارد المستخدمة في أثناء هذا التشغيل السريع حذف مجموعة الموارد باستخدام الأمر التالي:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes