• 1
yaseralshikh

درس في ADO.NET من الصفر إلى الإحتراف .

سؤال

بسم الله الرحمن الرحيم

وبه أبدا وأستعين ، وأختم بالصلاة والسلام على خاتم الأنبياء والمرسلين نبينا محمد وعلى آله وصحبه أجمعين ، أما بعد ..

=============

أستغل هذه المناسبة كي أهني كل الأصدقاء والأخوان والأخوات في هذا المنتدى الحبيب بقدوم عيد الفطر المبارك .. فكل عام وأنتم بخير ، وتقبل الله منا ومنكم صالح الأعمال .. ورزقنا الإخلاص في القول والعمل ...

=============

اليوم أقدم لأخواني درس يتناول التعامل مع قواعد البيانات باستخدام ADO.NET من الصفر إلى الاحتراف . والله الموفق ..

=============

وقبل أن أبداء في الدرس أحب أن نغرس في أنفسنا مبدأ يجب أن يتمسك به كل مسلم وهو حب نشر العلم تقرباً لله تعالى ، وذلك أن العلم أمانه يجب أن تصل إلى أصحابها وهم اللذين لا يعلمون ، وكل مسلم سوف يسأل عن علمه ماذا عمل به ، وأن نتذكر قول النبي صلى الله عليه وسلم : ( إذا مات ابن آدم انقطع عمله إلا من ثلاث : صدقة جارية , أو علم ينتفع به من بعده أو ولد صالح يدعو له ) .

=============

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

=============

لقد احترت كثيراً في الكيفية التي سوف أبدأ بها كتابة هذا الدرس فانا لست بارع في هذا المجال ( الكتابة ) ، وهذا الموضوع بالذات كثر فيه الجدل لأنه متشعب ، ولكي نجعل الموضوع سهل للجميع سوف نأتي بالزبده ( الخلاصة ) ونبتعد عن التفاصيل المملة التي لا يحتاجها المبتدئ والتي يمكن الرجوع إليها في الكتب المتخصصة في ذلك .

و قبل كل شيء أحب أن أوضح أنه من المهم أن نتحد في الإصدار الخاص بـMicrosoft.NET فأنا أستخدم الإصدار 2005 ، وأتعامل مع قواعد البيانات المصممة بواسطة برنامج Microsoft Office Access 2003 ، ولا أريد أن يغضب مني أخواني الذين يستخدمون SQL Server ، فانا لم أتعامل معه بشكل مباشر غير أني قرأت عنه قليلاً ولا أحتاجه في تطبيقاتي حتى الآن . ولكن هذا لا يعني أن الأخوان الذين يعملون على SQL Server لن يستفيدوا من هذا الدرس لان إستراتيجية التعامل مع قواعد البيانات في ADO.NET تقريباً موحدة في مختلف برامج قواعد البيانات سواء المصممة بواسطةMicrosoft Office Access أو SQL Server أو Oracle ، المهم أن نستخدم سلسلة الاتصال المناسبة ، بالإضافة إلى فضاء ( مجال ) الأسماء المناسب والكائنات التابعة له ، وكذلك اختيار طريقة الاتصال المناسبة لاحتياجاتنا ، والتي سوف نتعرف عليها فيما بعد ,,,

=============

تتلخص أهدفنا في التعامل مع قواعد البيانات في النقاط التالية :

1- الاتصال بمصدر قاعدة البيانات .

2- قراءة البيانات التي بها وعرضها بطرق شتى من خلال الأدوات المتوفرة في بيئةMicrosoft.NET .

3- معالجة البيانات وتحديثها من خلال تعديل قيم هذه البيانات أو إضافة بيانات جديدة أو حذف بيانات غير مرغوب فيها .

4- حفظ البيانات المحدثة .

5- الإبحار في البيانات من خلال الانتقال للسجل التالي أو ألعودة للسجل السابق أو الانتقال للسجل الأول أو الانتقال للسجل الأخير .

6- البحث عن البيانات بسهولة ويسر من خلال وضع فلاتر للترشيح .

7- ربط البيانات ذات العلاقة في أكثر من جدول وعرضها ومعالجتها .

8- طباعة التقارير الملخصة للبيانات .

=============

البداية :-

* نبذه عن ADO.NET:

هي مجموعة من الفئات مشمولة في مجال الأسماء System.Data غرضها الوصول إلى مصادر البياناتData Sources والتي تمثل بيانات محفوظة تحت أنظمة قواعد بيانات متعددة الأنواع ( مثل Microsoft Office Access أو SQL Server أو Oracle ) مما يعني قدرتك على الوصول إلى أي قاعدة بيانات مهما كانت الشركة المنتجة لها . ( أ. تركي العسيري) .

وتقوم ADO.NET باستخدام مزودات البيانات للاتصال بمصادر البيانات ومن ثم استرجاع هذه البيانات وتعديلها وإعادتها لمصادرها وحفظها هناك ( أ. خالد الجديع ) .

* الاتصال بقواعد البيانات:-

للوصول إلى البيانات المخزنة في قاعدة البيانات ( والتي سوف تكون في درسنا هنا عبارة عن ملف من نوع MDB الخاص ببرنامج Microsoft Office Access ) والقراءة منها أو الكتابة فيها يجب أن نكوّن اتصال ناجح معها ، وذلك يتم من خلال كائن الاتصال المسمى Connection ، ولتجهيز هذا الكائن نحتاج إلى أعطائه معلومات عن ملف قاعدة البيانات الذي نريد أن نتصل به ( من أهمها على سبيل المثال مزود البيانات وخادم البيانات واسم ومكان قاعدة البيانات و كلمة المرور مع كلمة السر إن وجدت ) ، وهذه المعلومات تكوّن لنا بما يسمى سلسلة الاتصال ( Connection String ) وهي عبارة عن أحد خصائص كائن الاتصال .

* سلسلة الاتصال :

وهي عبارة عن مجموعة من العوامل ( Parameters ) الضرورية للاتصال بقواعد البيانات ، وتختلف هذه العوامل بناءً على نوع مزود البيانات الذي سوف نتحدث عنه بالأمثلة في السطور التالية ، ومن أهم ما يهمنا من هذه العوامل ما يلي :

- Provider : وهو عبارة عن اسم مزود البيانات وسوف نذكر هنا نوعين الأكثر انتشاراً ، النوع الأول Microsoft.Jet.OLEDB.4.0 وهو للتعامل مع قواعد بيانات برنامج Microsoft Office Access ، والثاني SQLOLEDB وهو مخصص للتعامل مع قواعد بيانات برنامج SQL Server .

- DataSource : وهو اسم خادم البيانات ( أللذي يحتوي على جداول البيانات التي نريد أن نتصل بها ) ، ونجد أن خادم البيانات في برنامج Microsoft Office Access هو اسم ملف قاعدة البيانات الذي يحمل امتداد MDB ، بينما برنامج SQL Server فهو عبارة عن اسم الـ Server المثبت على الجهاز .

- Intial Catalog : وهو عبارة عن اسم قاعدة البيانات الموجوده في الخادم بالنسبة لبرنامج SQL Server .

- UserID/Password : وهو عبارة عن اسم المستخدم وكلمة المرور لقاعدة البيانات في حالة وجود قيود أمنية عليها .

ولعل المثالين التاليين تجعل الصورة واضحة جداً :

مثال 1 :

سلسة اتصال بملف قاعدة بيانات برنامج Microsoft Office Access ..

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\ MymdbFile.mdb;User ID=Admin;Jet OLEDB:Database Password=You'rePassword;

مثال 2 :

سلسة اتصال بملف قاعدة بيانات برنامج SQL Server ..

Provider=SQLOLEDB;Data Source=SQL Server DB;Initial Catalog=Northwind;User ID=You'reUserName;Password=You'rePassword

بعد التعرف على سلسلة الاتصال يجب أن نتعرف على نوعيّ طريقة الاتصال بقاعدة البيانات ..

* نوعيّ طريقة الاتصال بقواعد البيانات :

من الجدير بالذكر أننا لو أردنا أن نتصل على قاعدة البيانات بواسطة ADO.NET يجب أن نختار طريقة الاتصال المناسبة لاحتياجاتنا ، فلدينا طرقتين للاتصال وهما الاتصال المتصل ( Connection Oriented ) و الاتصال المنفصل ( Connectionless Oriented ) . ولكل منهما امتيازاته وعيوبه و إستراتجياته الخاصة به في العمل ، غير أن الأخير يعتبر الأمثل في التعامل مع قواعد البيانات ، وهنا بالتحديد يضيع أغلب من يرغبون تعلم برمجة قواعد البيانات من خلال ADO.NET .

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

((سبحانك اللهم وبحمدك، أشهد أن لا إله إلا أنت، أستغفرك وأتوب إليك ))
تم تعديل بواسطه yaseralshikh
5

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

196 إجابة على هذا السؤال .

  • 0

الموضوع مهم ومميزوافضل ما فيه الشرح الوافي و المجهود الاكثرمن رائعلك جزيل الشكرواسال الله ان ينعم عليك بالخير والبركةومزيدا من التوفيق---------------------

بالمناسبة كلمت السر لقاعدة البيانات ado.net

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا اخي على هذه الجهود الطيبة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أرجو إستكمال الدورة لأننا جميعا إعتمدنا عليها أنا بدأت فيها من الصفر ومنها عرفت يعنى إيه أدو وإستخدامها أصبح مفضل عندى

أرجوك يا أستاذنا ياسر كمل الدورة ديه

شكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نريد ان تستكمل الدورة وكل التحية والتقدير للاخ ياسر ومجهود طيب مشكور ولك دعوة صادقة من القلب.!!!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

شكرا علي الشرح الممتاز

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذا الموضوع جيد جداً و لكني أحتاجه مربوطاً بقاعدة بيانات sql server لإني لا أجد أهمية لربطه بالأكسيس لإنه يحتوي علي واجهة خاصة به ، و السبب الثاني أنني درست الأكسيس و لكني لم أتمكن فيه إما لأني غير مغرمة به أو أن تدريسه لم يكن كافي و لم أجد به كل إحتياجاتي كالسيكوال

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

شرح جميل جدا ونحن فى انتظار بافى الدروس وفقك الله الى مايحب ويرضى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا الله اعني على فهم الموضوع والمتابعه مع الدروس جميعها حتى افهمها

الف شكر اخي العزيز

بارك اله فيك وفي علمك وجعلك كما يحب ويرضى لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله يحفظك لخدمه الاسلام والمسلمين

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى العزيز :مبدئيا ألف شكر على مجهودك العظيم فى شرحك لأانى إستفدت منه كثيرا ولكن توجد مشكلة صغيرة وهى

إنى طبقت هذا الشرح على sql ولا يوجد خطأ فى الأكواد الخاصة التحديث والإضافة والحذف ولكن عند الضغط على أى من هذه الأزرار لا تقوم بالتنفيذ أو يظهر خطأ فى الأكواد كما أريد أن أوضح لك شىء غريب جدا وهو أن عدد الصفوف فى قاعدة البيانات هو 6صفوف فقط ولكن بعد عرضها فى الفورم يظهر لى عدد 54 لماذا

أرجو تكملة جميلك عليا وحل مشكلتى وجزاك الله كل خير

مرفق المثال

db.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور جدا على الموضوع المميز :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شروحات رائعة جداً

استفدت منها بشكل كبير جداً.

جزاك الله خير عن كل حرف كتبته

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

* أخي النبهاني نستخدم عبارة AS في جملة الإستعلام من أجل إعطاء الحقل إسم جديد في البيانات المعادة فيصبح في مثالنا هذا من ID إلى CountID لأسباب كثيره منها المزيد من الوضوح ، وهو من حيث الاسم لا يرتبط بالمتغير الذي صرحت عنه فيما بعد ، أشكرك على إلقاء الضوء على هذا اللبس ..

كما أرجو أن أكون قد توفقت في إصال الفكرة لكما ..

السلام عليكم أخواني المبرمجين وبداية اشكر الجهد المبذول بهذه المواضيع وكخبرتي القليلة بعالم البرمجة وردا على السؤال أنا من رأي أن يقوم أخي بقراءة البيانات وحفظها ب combo box ومن ثم يقوم باستخراجها منه وعمل اخفاء للكومبو ( يعني تحايل بتحايل بس ) لانو انا تعبت بالشغلة هاي وما لقيت حل الا هاي الشغلة وراح ارفق المشروع الشغال عليه بنهاية الاسبوع بإذن الله وهو مشروع امتحان الكتروني

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الف شكر لك اح ياسر شرح جدا جميل ومبسط

بس انا عندي سؤال

وهو عند الا تصال بقاعدة البيانات الا كسس هل يجب ان يكون برنامج مايكروسفت اكسس مثبت ولا لا

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ربنا يزيد علما

اللهم اجعل هذا العمل فى ميزان حسناتك

اللهم اجعل هذا العمل صدقه جاريه لا تنقطع

اللهم اجعل كل حرف حسنه و الحسنه بعشره امثالها

استأذنك لتكمله الشرح

مشكور مره اخرى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور على الموضوع الرائع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله اعلم انت فين او بتدخل المنتدى او لا

بس لازم اقولك شكرا

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا جزيلا أخي الكريم ، بارك الله فيك وجعل عملك هذا في ميزان حسناتك يوم القيامة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بصراحة

ما شاء الله عليك اخي الكريم

وربنا يجعله في مزان حسناتك 

وربنا يزيدك علم ويحفظك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .