إذا لم تكن قد عملت فقط في شركة جماعية كبيرة، فستتاح لك بالتأكيد فرصة التواصل مع MySQL، على الرغم من أنها لا تدعم معالجة المعاملات والإجراءات المخزنة، إلا أن الوظائف التي توفرها ستلبي بالتأكيد معظم احتياجاتك ، إنه موجز، تتمتع MySQL أيضًا ببعض المزايا الفريدة، وفي بعض الحالات، تكون سرعتها أسرع من سرعة قواعد البيانات الكبيرة.
فكيف يمكن الوصول إلى قاعدة بيانات MySQL في .NET؟ ربما سيقول العديد من الأشخاص على الفور: استخدم OLEDB، لكن في الواقع، لا يمكن لاستخدام .NET OleDb Data Provider الوصول إلى MySQL إذا كنت تستخدمه، فسيطالبك النظام بما يلي: "لا يقوم Net Data OLE DB Provider (System.Data.Odbc) بذلك. دعم موفر MSDASQL (موفر Microsoft OLE DB لبرنامج تشغيل Odbc) لا أعرف السبب وفقًا لمؤلف MySQLDriverCS، فقد "تخلى عنه المالك".
لحسن الحظ، لدينا خيارات أخرى فيما يلي طريقتان للوصول إلى قاعدة بيانات MySQL.
يعداستخدام ODBC.NET
ODBC.NET (الاسم الكامل ODBC .NET Data Provider) مكونًا إضافيًا مجانيًا لـ .NET Framework يجب تنزيله من موقع Microsoft على الويب. عنوان التنزيل هو: http://download.microsoft.com /download/ dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi ، الأمر الذي يتطلب تثبيت MDAC 2.7 أو أعلى على النظام. بالإضافة إلى ذلك، تحتاج أيضًا إلى تثبيت برنامج تشغيل ODBC لـ MySQL. عنوان التنزيل هو: http://www.mysql.com/downloads/api-myodbc-2.50.html وتحتاج أيضًا إلى تكوين DSN في ملف "ODBC مدير مصدر البيانات".
فيما يتعلق بتصميم الكائنات، فإن ODBC.NET هو نفسه OLEDB وSQL وما إلى ذلك، وهو OdbcConnection وOdbcCommand وOdbcDataAdapter وOdbcDataReader، ويكون الاستخدام هو نفسه تمامًا إذا كنت تريد استخدام ODBC .NET لاستبدال OleDb . NET Data Provider، في الواقع يمكنك تعديل برنامجك بالكامل عن طريق البحث والاستبدال.
هنا مثال على الكود:
حاول
{
سلسلة constr = "DSN=MySQL;" + "UID=;" +"PWD=";
conn = new OdbcConnection(constr);
conn.Open();
استعلام السلسلة = "أدخل في قيم test.dbtable10،'disksidkfsdi'، 'asdfaf'، 'adsfasdf')"؛
سلسلة tmp = فارغة؛
OdbcCommand cmd = new OdbcCommand(query, conn);
ل(int i = 0; i < 100000; i++)
{
cmd.ExecuteNonQuery();
}
cmd.Dispose();
conn.Close();
الاستعلام = "اختر * من test.dbtable";
OdbcCommand cmd2 = newOdbcCommand(query, conn);
conn.Open();
قارئ OdbcDataReader = cmd2.ExecuteReader();
بينما (القارئ.قراءة ())
{
tmp = Reader[0].ToString();
tmp = Reader[1].ToString();
tmp = Reader[2].ToString();
tmp = Reader[3].ToString();
}
conn.Close();
الاستعلام = "حذف من test.dbtable";
OdbcCommand cmd3 = newOdbcCommand(query, conn);
conn.Open();
cmd3.ExecuteNonQuery();
}
قبض (استثناء على سبيل المثال)
{
messageBox.Show(ex.Message);
}
أخيراً
{
conn.Close();
}
يجب على أي شخص قام بكتابة تطبيق قاعدة بيانات بلغة C# أن يعلم أن الكود أعلاه يقوم بعمليات إدخال البيانات وقراءة البيانات مائة ألف مرة، وفي النهاية يحذف جميع سجلات البيانات.
قد لا يعرف معظم الأشخاص ذلك
عند استخدام MySQLDriverCS
، وهو برنامج تشغيل .NET مجاني ومفتوح المصدر لقاعدة بيانات MySQL.تمامًا مثل Sql .NET Data Provider الخاص بـ Sql Server، فهو مصمم خصيصًا لـ MySQL ويمكن أن يطلق عليه MySQL .NET Data Provider. ليست هناك حاجة لإعداد مصدر بيانات ODBC إضافي لاستخدامه بشكل أساسي، طالما يمكنك الاتصال بـ MySQL، يمكنك الوصول إليه من خلال MySQLDriverCS.
MySQLDriverCS هو مشروع على SourceForge.NET، ولكن لسبب غير معروف، لا يمكن الوصول إلى هذا الموقع في الصين.
ما يلي هو مثال للتعليمات البرمجية باستخدام MySQLDriverCS:
MySQLConnection conn = null;
يحاول
{
string connstr = "مصدر البيانات = MySQL؛ كلمة المرور = الجذر؛ معرف المستخدم = الجذر؛ الموقع = المضيف المحلي"؛
conn = new MySQLConnection(constr);
conn.Open();
استعلام السلسلة = "أدخل في قيم test.dbtable(10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";
سلسلة tmp = فارغة؛
MySQLCommand cmd = new MySQLCommand(query, conn);
ل(int i = 0; i < 100000; i++)
{
cmd.ExecuteNonQuery();
}
cmd.Dispose();
conn.Close();
الاستعلام = "اختر * من test.dbtable";
MySQLCommand cmd2 = new MySQLCommand(query, conn);
conn.Open();
قارئ MySQLDataReader = cmd2.ExecuteReaderEx();
بينما (القارئ.قراءة ())
{
tmp = Reader[0].ToString();
tmp = Reader[1].ToString();
tmp = Reader[2].ToString();
tmp = Reader[3].ToString();
}
conn.Close();
الاستعلام = "حذف من test.dbtable";
MySQLCommand cmd3 = new MySQLCommand(query, conn);
conn.Open();
cmd3.ExecuteNonQuery();
}
قبض (استثناء على سبيل المثال)
{
messageBox.Show(ex.Message);
}
أخيراً
{
conn.Close();
}
إنه تقريبًا نفس الكود أعلاه، والفرق هو أن Odbc أصبح MySQL. بالإضافة إلى ذلك، هناك شيء واحد يجب ملاحظته وهو أن طريقة ExecuteReader أصبحت ExecuteReaderEx في MySQLDriverCS الوثيقة المرفقة للحصول على التفاصيل.
اختبار الأداء
لقد رأى بعض القراء بالفعل الغرض من الكود الذي كتبته أعلاه. بالمناسبة، الغرض هو إجراء اختبار الأداء. وقت تنفيذ الكودين المذكورين أعلاه هو: حوالي 24 ثانية لـ ODBC.NET وحوالي 17 ثانية لـ MySQLDriverCS. النتائج ليست مفاجئة، باعتباره برنامج تشغيل بيانات مخصص لـ MySQL، فمن المعقول أن يكون MySQLDriverCS أسرع بكثير من ODBC.NET.
ملخص
تقدم هذه المقالة طريقتين للوصول إلى قاعدة بيانات MySQL وتجري اختبارًا بسيطًا لأدائهما، وآمل أن توفر للقراء مرجعًا قيمًا عند استخدام قاعدة بيانات MySQL لتطوير تطبيقات .NET.