المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الثاني والستون : ADO.net - الجزء الثاني - دورة .net 2008


khaledbelal
03-07-2010, 03:12 PM
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


انتهينا من الفئات الاساسية في عالم ADO.net ، وجاء وقت التطبيق الآن .
سنحاول الآن تطبيق انشاء قاعدة بيانات مثلاً للموظفين باسم Employee ، الآن قم بتشغيل نسخة فيجوال ستوديو جديدة Windows Forms ، ومن ثم قم باختيار المسار والبيانات اللازمة .

بداية لا بد أن يكون لديك نسخة Sql Server من الاصدار السابع أو احدث او على الاقل النسخة الموجودة مع الفيجوال ستوديو Express على الرابط التالي : http://msdn.microsoft.com/vstudio/express/sql

والتي تقع ضمن المجموعة المجانية من مايكروسوفت .

الآن من قائمة View قم باختيار Server Explorer ستجده على الجانب ، قم بالضغط بالزر الأيمن واختيار Create New Sql Server Data**** بالشكل التالي :

http://vb4arab.com/vb/uploaded/3/01216041220.jpg

الآن اصبح بامكانك انشاء قاعدة البيانات ، قم فقط بتحديد الاسم ثم اضغط Create بالشكل التالي :

http://vb4arab.com/vb/uploaded/3/11216041220.jpg

*** قد تظهر لك مشكلة عدم وجود سيرفر في الاصل لتتصل به ، في الغالب حل هذه المشكلة يكون لعدم اتصالك بالشبكة ، فقط قم بتوصيل الشبكة - حتى في حالة عدم وجود اتصال بالانترنت - وجرب . فقط .

*** قد يظهر لك اسم سيرفر ولكن تظهر لك رسالة الخطأ التالية :

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

في هذه الحالة من البرامج قم باختيار Microsoft SQL Server 2005 ومن ثم Configuration Tools ومن ثم SQL Server 2005 Surface Area Configuration ، ستجد من ضمن الخصائص Surface Area Configuration for Services and connections ، قم بفتحها والتأكد من ان خصائص Local and remote connections مفعلة ، قم ايضاً بالتأكد من أن السيرفر يعمل .

ايضاً يمكنك متابعة مجموعة من الحلول هنا :
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=192622&SiteID=1

الآن اصبح لديك قاعدة بيانات وجاهزة للعمل ، سنبدأ باضافة جدول بيانات الموظفين بالشكل التالي :

http://vb4arab.com/vb/uploaded/3/21216041220.jpg

لاحظ انه بامكانك اضافة اي محتويات بهذا الشكل مثل الدوال والاجراءات Stored Procedure وغيره ، الآن قمنا باختيار اضافة جدول بالشكل التالي :

http://vb4arab.com/vb/uploaded/3/31216041220.jpg

لتعيين مفتاح رئيسي نقوم باختيار set primary key ولجعله autonumber نقوم بتعديل Identity Specfications إلى yes ومن ثم نقوم بتحديد Increment وهو معدل الزيادة إلى 1 كما في الشكل التالي :

http://vb4arab.com/vb/uploaded/3/41216041220.jpg

وبنفس الطريقة يمكنك تعديل قيم وخصائص اي حقل ترغب فيه بنفس الطريقة .

يمكنك مراجعة انواع البيانات في sql server وخصائصها من هنا :
http://www.teratrax.com/sql_guide/data_types/sql_server_data_types.html

وللتعرف على نظائرها في لغة البرمجة هنا :
http://msdn.microsoft.com/en-us/library/ms131092.aspx

اخيراً بعد الانتهاء قم بحفظ الجدول باسم Employee_Info مثلاً .

بعد ان قمت بالخطوات السابقة ، يمكنك استعراض الجداول التي لديك وفتحها للبدء في ادخال البيانات بالشكل التالي :

http://vb4arab.com/vb/uploaded/3/01216042017.jpg

وبنفس الطريقة يمكنك اعادة تصميم الجدول وخلافه ، قمت بادخال بعض البيانات بالشكل التالي مثلاً :

http://vb4arab.com/vb/uploaded/3/11216042017.jpg

Stored Procedure :

لعلك قد اطلعت سابقاً على معنى جمل الاستعلام ، إن لم تكن كذلك انصحك بمراجعة دروس الاكسيس على هذا الرابط متضمنة دروس الاستعلامات :
http://vb4arab.com/vb/forumdisplay.php?f=23
ال Stored Prcoedure هو جملة استعلام مخزنة في قاعدة البيانات ، يمكنك معرفة المزيد عن تفاصيلها هنا :
http://www.arabteam2000-forum.com/index.php?showtopic=84176

ما يعنينا هنا هو كيفية انشاء جمل الاستعلام تلك في مشروعنا ، لنفترض اننا نريد استرجاع جميع الاسماء الأولى للاشخاص الذي يكبر عمرهم عن 21 سنة ، لذا جملة الاستعلام الافتراضية ستكون بالشكل التالي :

select [First Name] from employee_info where age>21


وهو ما يتم تحويله ل Procedure بالشكل التالي - لو كنت قرأت الدرس السابق - :


ALTER PROCEDURE dbo.GetAge

@firstname char(10) output
AS
SELECT [First Name] from Employee_info where age > 21

والآن سنذهب إلى قسم Stored Procedure وسنختار انشاء واحد جديد ونكتب فيه هذه الاستعلام :

http://vb4arab.com/vb/uploaded/3/01216043388.jpg

يمكنك تجربة الناتج عن طريق اختيار Excute ، وسيكون الناتج شيئاً مثل هذا :

http://vb4arab.com/vb/uploaded/3/11216043388.jpg

يمكنك جعل جملة الاستعلام تستقبل بارميتر لتحديد مثلاً الشرط المطلوب ، الشكل التالي كمثال :


ALTER PROCEDURE dbo.GetAge

@condition int,
@firstname char(10) output
AS
SELECT [First Name] from Employee_info where age > @condition



في هذه الحالة يمكنك تمرير بارميتر سواء من البرنامج او حتى في ال SQL Server لتقوم بتنفيذ جملة الاستعلام على اساسه

لو كنت تريد معرفة لماذا نستخدم Stored Procedure بدلاً من جمل الاستعلام مباشرة ، فقد يجعلك هذا الرابط تغير رأيك :
http://vb4arab.com/vb/showthread.php?t=379

العلاقات :
قم بعمل جدول فرعي مثلاً نضع فيه المشاريع التي يعمل عليها كل موظف ، سيكون الناتج شيئاً مثل هذا :

http://vb4arab.com/vb/uploaded/3/01216043963.jpg

لربط العلاقات ، من القائمة الجانبية ستجد Data**** Diagram ، قم باختيار Add New وقم بسحب القيم التي تود ربطها في العلاقة بالشكل التالي مثلاً :

http://vb4arab.com/vb/uploaded/3/11216043963.jpg

الآن نكون قد انتهينا من دروس انشاء قاعدة بيانات سريعة خاصة بنا ، في الدرس القادم سنترك Sql Server ونعود إلى عالم ADO.net .

لو كنت تحب التعرف على المزيد في عالم SQL Server يمكنك البدء من هنا :
http://msdn.microsoft.com/en-us/sqlserver/default.aspx

ويمكن بعد انتهاء مرحلة الدروس الاساسية ان اعود لاضافة بعض النقاط بخصوص SQL Server .


والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .

microtop
03-07-2010, 10:07 PM
يا هلا بيك اخى الكريم درس ممتاز جدا جزاك الله خيرا

khaledbelal
03-07-2010, 10:25 PM
جزانا واياك اخي الكريم
وبارك الله فيك على المرور الطيب

ماريا إسلام
05-03-2011, 11:37 PM
وعليك السلام
جزاك الله خيراااا ،
//