Mysql Connect/NET وكيف تستخدمها في التعامل مع قواعد البيانات Mysql من خلال Visual Studio

24-10-2013 MYSQL | Visual Studio
إعلان

الهدف من هذه المقالة أن تعرف جيدا كيف تقوم بالتعامل مع قواعد البيانات Mysql وكتابة الإستعلامات من خلال #C بإستخدام MySql Connect/NET , سأقوم بكتابة تطبيق بسيط يوضح كيفية إدراج المكتبة إلى مشروعك ومن ثم إستخدامها بشكل مباشر, قمت بكتابة هذه المقالة بعد أن تعرضت لمشكلة في تحويل قاعدة البيانات Mysql إلى قاعدة بيانات MSSQL sdf الخاصة بالهواتف "Windows Phone", قمت بتحميل العديد من البرامج وكان معظمها لا يعمل بشكل جيد, والبرامج الممتازة ذات سعر مرتفع جدا لذلك قررت كتابة تطبيق بسيط يقوم بنسخ البيانات من قاعدة إلى أخرى.

بداية قم بتحميل المكتبة MySql Connect/NET وقم بتنصيبها على حاسوبك وبعد ذلك قم بفتح Visual Studio أي كان إصداره

إختر Mysql.Data

قم بالدخول إلى خصائص Reference

أعد تعيين قيمة Copy Local إلى True

سوف نبدأ بإضافة مكتبة Mysql.Data.MysqlClient التي تحتوي على الفئات المختصة بالتعامل مع قاعدة البيانات Mysql.

//Include Mysql Library
using MySql.Data.MySqlClient;

لبناء إتصال مع قاعدة البيانات نستخدم الأسلوب الخاص بقواعد بيانات MSSQL ولكن مع إختلاف بسيط في Connection String فعناصر الإتصال بقاعدة بيانات Mysql هي كالتالي

  • Connection : وهو من نوع MysqlConnection وهو متغير يستخدم لإستقبال نص الإتصال Connection String وفتح وإغلاق الإتصال بقاعدة البيانات
  • Server : وهو السيرفر الخاص بقاعدة البيانات Mysql وعادة ما يكون localhost
  • Database : وهي قاعدة البيانات التي سنتواصل معها
  • uid : وهو إسم المستخدم الخاص بقاعدة البيانات وعادة ما يكون root
  • password : كلمة المرور الخاصة بقاعدة البيانات وفي معظم الأحيان لا يكون هناك أي كلمة مرور
  • ConnectionString : وهو نص الإتصال بقاعدة البيانات ويحتوي على القيم الخاصة بالعناصر السابق ذكرها

تجهيز نص الإتصال ConnectionString

يتم تجهيز نص الإتصال بقاعدة البيانات من خلال إنشاء متغير نصي ووضع القيم بداخله على الشكل التالي

string server = "localhost";
string database = "myDB";
string uid = "root";
string pwd = "123";
string ConnectionString = String.Format("Server={0};Database={1};" +
                          "UID={2};PASSWORD={3}", server, database, uid, pwd);

بعد ذلك ننشئ متغير الإتصال بقاعدة البيانات من نوع MysqlConnection ونقوم بتزويده بنص الإتصال

MySqlConnection cnn = new MySqlConnection(ConnectionString);

إنشاء Command للتعامل مع الجداول

بعد ذلك نقوم بإنشاء Command ليقوم بالتفاعل مع الجداول وتنفيذ الإستعلامات عليها كما في الكود التالي

MySqlCommand cmd = new MySqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from db_table";

نفتح الإتصال بقاعدة البيانات ليتمكن Command من تنفيذ الإستعلامات

cnn.Open();

ثم نقوم بتنفيذ الإستعلام وحفظ النتائج في متغير من نوع SqlDataReader

MySqlDataReader rd = cmd.ExecuteReader();

وبعد ذلك نقوم بعرض البيانات

while (rd.Read())
{
       //Write Code Here
       textBox1.Text += (rd[1].ToString() + Environment.NewLine);
}

ثم نقوم بإغلاق كافة الإتصالات المفتوحة

rd.Close();
cnn.Close();

MysqlClient تشبه إلى حد كبير SqlClient والفروقات بينهما في نوع قاعدة البيانات التي يتم التعامل معها.

SqlClient هي مخصصة لقواعد البيانات MSSQL أما MysqlClient فهي لقواعد البيانات Mysql لذلك إن كنت قد تعاملت سابقا مع SqlClient فيمكنك إستخدام MysqlClient بكل سهولة, فقط قم بتعديل ConnectionString وقم بإستخدام Mysql قبل كل فئة بدل من Sql.

مثال :

MysqlConnection

بدلا من

SqlConnection

 

عن محمد جمال

مهندس حاسوب ومطور برمجيات, أعمل Freelancer في تطوير تطبيقات الويب من خلال ASP.NET منذ عام 2007 قمت بإنشاء عدة مشاريع في مجالات مختلفة (المتحكمات الدقيقة, الأنظمة المضمنة, الروبوت, برامج سطح المكتب, أنظمة قواعد البيانات) ومن هواياتي الخط العربي

subscribe

إعلان
إعلان

نظرة سريعة على مميزات بيئة التطوير الجديدة فيجيوال ستوديو 2013 نسخة الويب

19-09-2013 ASP.NET | Visual Studio
إعلان
b1106fe1-7d72-46fd-a0f9-3b970336c0ac

قمت قبل أيام بتحميل نسخة الويب من بيئة التطوير Visual Studio 2013  لأطلع عليها وخصوصا أنه لم يمض وقت طويل على صدور النسخة Visua Studio 2012 ! إستنكرت بداية هذا التتابع السريع في النسخ التي تلحق بعضها بعضا من مايكروسوفت, فلم يمض الوقت الكافي لكي نستخدم بيئة التطوير VS2012 إلا وأصرت مايكروسوفت إصدار النسخة 2013! يبدو أن هناك بعض النقاط التي فاتها وضعها في النسخة السابقة.

أكثر ما يزعجني في مايكروسوفت هو سياستهم في إصدار البرمجيات, تذكرني بسياسة شركة نوكيا قديما في إصدار الهواتف, فبعد أن أشتري الهاتف الأكثر تطورا من نوكيا أجد في اليوم التالي صدور ما هو أحدث منه, أعتقد أن الأمر سيكون مريحا أكثر لأي مبرمج الحصول على نسخة متكاملة من بيئة التطوير لمدة 4 أعوام على الأقل, وبعد تعطشه الشديد لوجود تحديثات جديدة تأتي مايكروسوفت على صهوة جوادها لتضع بين يديه منتج حديث بدل سابقه, ربما لمايكروسوفت رأي اخر ليس ضمن حساباتي ولكن كانت تلك مجرد رغبة في أن يصبح الأمر كذلك. عموما كتبت هذا الموضوع لأضع بعض الصور والمميزات التي وجدتها في نسخة الويب من بيئة التطوير Visual Studio 2013.

في بداية الأمر أحب أن اثني على إضافة قالب Blue إلى قائمة القوالب وهو القالب المستخدم في VS2010 وقد تم تجاهله في نسخة VS2012 وها هو الان يعود لنا في النسخة 2013 منقوصا بعض الشيئ بسبب التغيير الذي طرأ على شكل الأيقونات تماشيا مع نظام Windows 8, ولكن يبقى شيئ جميل أن نجد هذا القالب ضمن القائمة.

options

من الجدير بالذكر أيضا أن VS2013 هو مجرد تنظيم وتحسين ودمج للتقنيات التي تعج بها بيئة التطوير Visual Studio ولأني قمت بتحميل نسخة الويب فقد لاحظت التنظيم على مستوى تطبيقات الويب حتى الان.

project

لم تعد الشاشة ممتلئة بالخيارات الان, تم إدراج كافة أنواع المشاريع تحت مسمى ASP.NET Web Application

newproject

هل أصبح من السهل حقا إختيار نوع المشروع في ASP.NET بهذا الأسلوب الجديد ؟ لا يحدث ذلك فرق ولكنه أفضل شكلا من السابق, يمكنك الأن تحديد مشروعك ضمن سلسلة خطوات بدل من إختياره مباشرة, كافة أنواع المشاريع أدرجت تحت مسمى ASP.NET Web Application سواء أكان Web Forms, MVC, API أو غيرها فعند قيامك بإنشاء مشروع ASP.NET جديد تظهر لك شاشة حوار تطلب منك تحديد نوع وخصائص المشروع الذي ترغب بإنشائه.

chooseprojecttype

أكثر ما لفت نظري في هذه الشاشة هو نظام المصادقة في تطبيقات الويب "Authentication" في مشاريع ASP.NET, فقد تم تنظيمه بأسلوب رائع, يمكنك أن تحدد ماهية المصادقة التي ترغب باستخدامها في مشروعك, معظم الأحيان أرغب في إستخدام Internet Project والذي يأتي مثقلا بملفات المصادقة "AccountController" جاهزة الإستخدام, أضطر بعد ذلك لحذفها نظرا لطبيعة المشروع, يمكنني الان أن أقوم باستثنائها مباشرة في مرحلة الإنشاء, قامت مايكروسوفت أيضا بإضافة نوع خاص بالمصادقة يتعلق بالمنظمات "لم أطلع عليه بشكل معمق حتى الان"

authentication

منذ إصدار MVC 4 والنظام المعتمد في المصادقة هو SimpleMembership بدلا من سابقه ASP.NET Membership Provider المقيت والغير مريح إطلاقا!. يمكنك الحصول على معلومات إضافية عن Authentication داخل ASP.NET وكيف تقوم بإستخدامه من خلال هذا الرابط.

تأتي MVC 5 بشكل تلقائي مع VS2013 وهي النسخة الأحدث حاليا وأنا متفائل بها لسبب بسيط وهو إعتمادها إطار العمل Bootstrap داخل التطبيقات, بالتأكيد هذا الأمر إيجابي بالنسبة لي فلن أضطر بعد ذلك لأقوم بتحميل ملفات إضافية وإرفاقها مع التطبيق يدويا, Bootstrap يعتبر الان من أكثر أطر العمل المتعلقة بالتصميم إنتشارا نظرا لسهولة وبساطة التعامل معه ودعمه لمفهوم Responsive Design بالإضافة أيضا إلى الشكل الجميل والأنيق الذي يضفيه على التطبيق.

runproject

لا أريد القول أن أسلوب Scaffold الجديد لفت نظري لأنه لم يفعل ذلك بل كنت على علم بوجوده مسبقا من خلال قراءة بعض المقالات التي تتحدث حول هذا الموضوع, في بداية الأمر كان من الصعب علي أن أتقبل فكرة وجود أداة تقوم بكتابة الكودات عني, حاولت تقبلها في عدة مشاريع بعد أن قمت بمراجعة ما تقوم بتوليده مرات عديدة وأنا مقتنع الان أنها تفعل ما أريده تحديدا ولكن لم أستطع التخلص من عادة إعادة إلقاء النظر مرة أخرى على ما قامت بكتابته!

scaffolding

عند قيامك بإنشاء جدول جديد في قاعدة البيانات فستقوم بالتأكيد ببناء صفحة تقوم بإضافة البيانات على هذا الجدول, وصفحة لحذف البيانات وأخرى لتعديل البيانات وهذه العمليات هي عمليات شبه روتينية على معظم الجداول, لذلك بدل من إنشاء هذه الصفحات يدويا وإضاعة الوقت عليها يمكنك إستخدام Scaffolding الموجودة داخل ASP.NET لكي تقوم بتوليد الأوامر والصفحات تلقائيا.

يمكننا القول الان أن Scaffold من الإضافات الأساسية بعد أن كانت إضافة مريحة توفر عليك الوقت والجهد في كتابة العديد من الكودات, في بداية الأمر كانت مقتصرة فقط على MVC, الان أصبح بإمكانك إستخدام Scaffold خلال أي مشروع ASP.NET بما في ذلك Web Forms, كما أصبح بإمكانك الان إستخدام Web Forms داخل MVC و كذلك الأمر مع API, يمكنك دمج أكثر من تقنية داخل مشروع واحد .... جيد !

scaffolding1

هناك بعض خصائص Scaffold الغير متوفرة حاليا داخل Web Forms وستقوم مايكروسوفت بإصدار تحديثات بخصوصها قريبا, لكي تقوم بإستخدام Scaffold داخل Web Forms قم بإضافة MVC Dependencies أولا.

كمطور تطبيقات ويب يتوجب عليه أن يحافظ على جودة التصميم أثناء البرمجة على كافة المتصفحات. يقدم VS2013 شيئا مفيدا في هذه الجزئية, فمن خلال Browser Link أصبح بإمكانك تشغيل مشروعك على أكثر من متصفح في نفس الوقت, قم بإختيار Browse With ثم قم بتضليل المتصفحات المتاحة.

browser-link

والجميل في الأمر أيضا هو إمكانية تحديث كافة المتصفحات من خلال زر واحد "Refresh", إذا قمت بإضافة تعديل بسيط على التصميم وترغب في رؤية النتائج مباشرة قم بتحديث المتصفحات من خلال Visual Studio بدل من الذهاب لكل متصفح بشكل منفرد.

a6d657b6-a042-4367-9e0b-8359c76537e1

أيضا تم تطوير محرر html داخل VS2013, يمكنك ملاحظة ذلك أثناء كتابتك كود html, ستظهر لك مجموعة من الخيارات الإضافية التي لم تكن موجودة في السابق.

فعلى سبيل المثال في VS2012 عند كتابتك لهذا الكود ستحصل على خيارات محدودة 

pdatatargetvs2012

وفي VS2013 أصبحت الخيارات أكثر تحديدا

pdatatargetvs2013

أعتدت في بناء التطبيقات على أن لا يحتوي أي ملف عدد كبير من السطور لكي لا يصبح الأمر معقدا في البحث عن شيئ ما, بل عادة ما أقسمها لمجموعة ملفات, لا أعتقد أني سأستمر في هذا الأمر بعد إضافة مايكروسوفت الجديدة على Scrolling Bar

scrolling

بالتأكيد هذا أفضل بكثير مما كان الأمر عليه سابقا, فبدل من الإستمرار في الصعود والنزول داخل الصفحة بإستخدام Scroll Bar لإيجاد شيئ ما ستظهر لك صورة مصغرة عن الكود في الملف وعند تمرير الماوس على جزء معين سيظهر لك الكود في ذلك الجزء أكثر وضوحا.

كما شاهدنا سابقا جاءت نسخة الويب من بيئة التطوير Visual Studio 2013 بمجموعة من الكماليات البعض يعتبرها غاية في الأهمية والبعض الاخر يفضل أن يبقى على ما تعود عليه وارتاح معه وفي النهاية تعود حرية الإختيار لك ولرغباتك فإذا كنت تملك الوقت للإطلاع عليها وإستخدامها فستساعدك, وإذا كنت مشغولا في التطوير ولا وقت لديك للأشياء الجديدة فلن يؤثر ذلك أيضا.

شخصيا سأقوم بالإنتظار قليلا قبل البدء بإستخدام النسخة بشكل رسمي في تطبيقاتي إلى حين صدور نسخة أو تحديث جديد وسأكتفي بإجراء بعض التجارب والإختبارات في التدوينات المقبلة من خلالها.

عن محمد جمال

مهندس حاسوب ومطور برمجيات, أعمل Freelancer في تطوير تطبيقات الويب من خلال ASP.NET منذ عام 2007 قمت بإنشاء عدة مشاريع في مجالات مختلفة (المتحكمات الدقيقة, الأنظمة المضمنة, الروبوت, برامج سطح المكتب, أنظمة قواعد البيانات) ومن هواياتي الخط العربي

subscribe

إعلان
إعلان

تنويه : الأراء في هذا الموقع شخصية ولا تبت لأحد بصلة تحت أي حال من الأحوال