Tammam Koujan

Welcome to my world

Archive for March 17th, 2007

الربط مع قواعد البيانات في الدوت نت

Posted by tammamkoujan on March 17, 2007

الربط مع قواعد البيانات في الدوت نت
Data Access with .NET

بسم الله الرحمن الرحيم
ماذا ستتعلم من هذا الدرس :

مستوى الدرس : مبتدأ

لغة البرمجة : C# , VB.NET

مضمون الدرس : اذا كنت مبتدأاً يعلمك هذا الدرس واحدة من طرق الربط مع انواع مختلفة من قواعد البيانات

البداية :

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

هذا الدرس مطبق على :
- Microsoft Visual Studio .NET 2005
- Microsoft SQL Server 2000
- Microsoft Access 2003

مقدمة :

إذا كنت تبرمج برنامجا يعتمد على قواعد البيانات و إذا كنت كسولا مثلي فلربما ستسأل نفسك ألا يوجد طريقة بسيطة و سهلة تريحني من كتابة عبارة الإتصال التي ارتبط بها مع قاعدة البيانات , تهانينا ستجد هنا الطريقة السحرية التي طالما حلمت بها .
في دوت نت يمكنك الارتباط بقواعد البيانات من خلال فضائي الاسماء :
- System.Data.SqlClient : هذا الفضاء مخصص للتعامل مع قواعد بيانات Microsoft SQL Server .
- System.Data.OleDb : هذا الفضاء مخصص للتعامل مع بقية أنواع قواعد البيانات التي تدعم OLE مثل
Microsoft Access.
ملاحظة : بما ان SQL Server تدعم OLE فيمكنك التعمل معها من خلال الفضاء System.Data.OleDb لكن
الفضاء System.Data.SqlClient هو الافضل و الاسرع في التعامل مع SQL Server .

كبداية سريعة إنطلق مباشرة إلى سطح مكتبك (لا أقصد سطح مكتبك في الغرفة بل الذي في حاسبك) و انقر بزر الفأرة الأيمن في أي مكان فارغ فيه , ثم انقر على الخيار “New” ثم اختر مستند نصي “Text Document”
كما في الصورة التالية :

1.JPG

قم بتغيير اسم الملف إلى Connection.udl (عند تغيير اسم الملف تأكد من أنك غيرت لاحقته فعلا و إلا فإنه سيبقى ملفا نصيا )

عند تغيير اسم الملف ستظهر لك الرسالة التالية :

2.JPG

انقر Yes , ستتحول أيقونة الملف إلى الشكل التالي :

3.JPG

سنبدأ أولا بالاتصال مع قاعدة البيانات SQL Server 2000 , انقر على الملف , سفتح لك نافذة قد تكون مألوفة لك اذا كنت قد كتبت تطبيقات قواعد بيانات من قبل .
اذهب إلى الصفحة Provider:

4.JPG

قم باختيار Microsoft OLE DB Provider for SQL Server (يبدو انك قد لاحظت كلمة OLE في العبارة رغم
اننا قلنا بأنه لن نستخدم OLE في الاتصال بـ SQL Server ثق بي فقط و أكمل)
انقر على الزر Next , ستنتقل عندها إلى الصفحة Connection

5.JPG

قم بتحديد اسم السرفر الذي تتواجد عليه SQL Server ( في مثالنا هذا هو TAMMAM_PC )
ثم قم بتحديد طريقة الدخول للقاعدة (في المثال قمت باستخدام أمان ويندوز) , في الجزء الثالث و الأخير أنقر على
القائمة المنسدلة و قم بتحديد قاعدة البيانات التي تريد الاتصال بها (في هذا المثال استخدم قاعدة Northwindالمرفقة مع SQL Server كمثال) , الان كل شيء جاهز تقريبا انقر على الزر Test Connection اذا كان كل شيء صحيحا ستظهر لك الرسالة التالية :

6.JPG

انقر زر OK لتغلق الرسالة ثم زر OK لتغلق النافذة .

اذهب الان إلى Visual Studio .NET قم بإنشاء مشروع جديد (رغم أنني سأضع الشيفرة بالـ C# و الـ VB.NET إلا
ان الصور ستكون للمشروع المكتوب بالـ C# ) و قم بتسميته CreateConnection كما في الصورة :

7.JPG

قم بإضافة زر إلى النموذج و قم بتغيير خاصية الـ Text له إلى : SQL Server Test Connection كما في الشكل :

8.JPG

انقر بزر الفأرة الأيمن على النموذج و اختر View Code , قم بإضافة فضاء الاسماء System.Data.SqlClient
إلى البرنامج في الجزء العلوي من الشيفرة و ذلك لدعم SQL Server :

C# :

using System.Data.SqlClient;

VB.NET :

Imports System.Data.SqlClient

عد إلى واجهة التصميم و انقر على الزر ثم قم بكتابة ما يلي :

C# :

try
{
SqlConnection objConn = new SqlConnection();
objConn.Open();
objConn.ConnectionString = “”;
MessageBox.Show(“Hello” + (char)13 + ” I am Connected to SQL Server 2000″);
}
catch (Exception ex)
{
MessageBox.Show(“Can not Connect to the database “+ex.Message);
}

VB.NET :

Try

Dim objConn As New SqlConnection()
objConn.ConnectionString = “Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=TAMMAM_PC”
objConn.Open()
MessageBox.Show(“Hello” + vbCrLf + “I am Connected to SQL Server 2000″)
Catch ex As Exception
MessageBox.Show(“Can not Connect to the database ” + ex.Message)
End Try

الان نعود إلى ملف Connection.udl الذي أنشأناه في بداية هذا الدرس , قم بالنقر باليمين على الملف ثم اختر
Open With ثم قم بإختيار Notepad :

9.JPG

بدءاً من عبارة Integrated Security قم بنسخ السطر إلى نهايته (لاحظ اننا تجاهلنا العبارة Provider=SQLOLEDB.1; في
بداية السطر لأننا نتصل من خلال الفضاء System.Data.SqlClient و ليس من خلال
System.Data.OleDb رغم انه يمكنك تجاهلها بالنسبة لـ OLE أيضا لانه القيمة الافتراضية لكن من الفضل وضعها عند استخدامه)
و من ثم الصقه في الشيفرة عند objConn.ConnectionString في مثالنا سيكون بالشكل التالي :

C# :

objConn.ConnectionString = ” Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=Northwind;Data Source=TAMMAM_PC”;

VB.NET :

قم بضغط F5 سيتم تنفيذ البرنامج انقر على الزر و اذا مان كل شيء صحيحا ستظهر لك الرسالة التالية :

10a.JPG

الان انهينا ما يتعلق بالاتصال بـ SQL Server و ننتقل إلى الاتصال من خلال OLE

قم بإنشاء ملف Microsoft Access جديد , ثم قم بالنقر على الملف Connection.udl الذي أنشأناه اذهب إلى الصفحة
Provider و قم باختيار Microsoft Jet 4.0 OLE DB Provider انقر على الزر Next سيتم نقلك إلى الصفحة Connection قم بتحديد مسار القاعدة ثم انقر الزر Test Connection انقر OK ثم OK .

قم بإضافة زر جديد إلى البرنامج اكتب في خاصية Text للزر : OLE DB Test Connection
قم بإضافة فضاء الاسماء System.Data.OleDb إلى البرنامج في الجزء العلوي من الشيفرة و ذلك لدعم OLE :

C# :

using System.Data.OleDb;

VB.NET :

imports System.Data.OleDb

عد إلى واجهة التصميم و انقر على الزر الثاني ثم قم بكتابة ما يلي :
C# :

try
{
OleDbConnection objConn = new OleDbConnection();
objConn.ConnectionString = “”;
objConn.Open();
MessageBox.Show(“Hello” + (char)13 + “I am Connected to OLE DB”);
}
catch (Exception ex)
{
MessageBox.Show(“Can not Connect to the database ” + ex.Message);
}

VB.NET :

Try

Dim objConn As New OleDbConnection()
objConn.ConnectionString = “”
objConn.Open()
MessageBox.Show(“Hello” + vbCrLf + “I am Connected to OLE DB”)

Catch ex As Exception

MessageBox.Show(“Can not Connect to the database ” + ex.Message)
End Try

الان نعود إلى ملف Connection.udl الذي عدلنا الاتصال فيه , قم بالنقر باليمين على الملف ثم اختر
Open With ثم قم بإختيار Notepad :

11.JPG

بدءاً من كلمة Provider قم بنسخ السطر إلى نهايته , و من ثم الصقه في الشيفرة عند objConn.ConnectionString في مثالنا سيكون بالشكل التالي :
C# :

objConn.ConnectionString = @” Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test.mdb;Persist Security Info=False”;

VB.NET :

objConn.ConnectionString = ” Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test.mdb;Persist Security Info=False”

قم بتنفيذ البرنامج ثم اضغط الزر الثاني ستظهر لك الرسالة :

12.JPG

هكذا تكون تعلكت كيف تنشأ عبارة الاتصال مق قواعد بيانات SQL Server و OLE و بالتالي اصبح من السهل عليك ان تتوسع و تربط مع اي قاعدة بيانات تريدها

الشيفرة :

لتحميل شيفرة البرنامج :
CreateConnection.zip

كلمة أخيرة :

اتمنى ان تكون قد استفدت من الدرس , اذا كان عندك اية ملاحظات او اكتشفت اي خطأ أو كنت تملك معلومات اضافية قد تساعدني
اتمنى ان تراسلني و تخبرني بما عندك .

للمزيد من الدروس يمكنك زيارة مدونتي الإلكترونية http://tammamkoujan.wordpress.com/
اذا كنت ترغب بمراسلتي Tammam84@Yahoo.com
ملاحظاتك و استفساراتك مرحب بها على الدوام .

تمام كوجان في 17/03/2007
ُEmail : TammamKoujan@Gmail.com
يجوز نشر هذه المقالة أو أجزاء منها بشرط المحافظة على اسم الكاتب و ذكر المصدر

Posted in برمجة | 8 Comments »