الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الطريقة السهلة لربط سي شارب بقاعدة بيانات اكسيس

مغلق
بدأه kal7hos في 3 أغسطس 2007 · 8 رد · 3,873 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

مقدمة

لاحظت في كثير من المشاركات التي تهتم بربط سي شارب بقواعد البيانات أنها تستخدم الاكواد في الربط ، في حين ان VS2005 لديها الامكانية لربط قواعد البيانات بدون استخدام الكود ، حيث تقوم VS2005 تتكون الكود تلقائيا

طبعا لا غني عن الكود و أهميته ، وأهمية فهمه وكيفة سيره ، حتي مع استخدام التسهيلات التي تقدمها VS2005 فلابد من فهم الكود بشكل جيد

الا ان التسهيلات التي تقدمها مايكروسوفت في نسخة VS2005 يمكن استخدامها في حالتين ، الاولي مع المبتدئين ، حيث بهذه التسهيلات يمكن للمتدئين انشاء اتصال مع قواعد البيانات بسهولة

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

سوف اقوم الان بشرح لطريقة التعامل مع قواعد البيانات ( الاكسيس ) من بيئة سي شارب بدون استخدام الكود ، الا في الضرورة القصوي

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

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

البداية

في البداية سوف نقوم بانشاء قاعدة البيانات

قم بانشاء قاعدة بيانات باسم mydata ثم قم بادراج جدول باسم qest مكون من عمودين qid ، qest

1-1.JPG

افتح فيجوال استوديو 2005 Visual Studio 2005 وانشئ مشروع جديد وسميه database من نوع C#

لعمل اتصال بين C# وقاعدة البيانات mydata قم بعمل الاتي :

افتح قائمة Data واختر منها Show Data Sources

1.JPG

سوف تظهر لك نافذة Data Sources

2.JPG

اختر منها add new Data Sources

سوف يظهر لك معاكم قواعد البيانات

اختر كما هو موضح بالصورة

3.JPG

ثم اختر new connection

4.JPG

اتبع الخطوات كما بالصور

5.JPG

6.JPG

7.JPG

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

8.JPG

اختر نعم

هنا سوف يطلب منك اسم Connection string

اتركه كما هو mydataconnectionstring

9.JPG

اتبع الخطوات كما بالصورة التالية حيث يطلب منك اختيار ما تريد الاتصال به

10.JPG

بعد انهاء المعالج

سوف يظهر في نافذة Data Sources قاعدة البيانات التي تم الاتصال بها

11.JPG

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

تم تعديل هذه المشاركة بواسطة عماد الخليل في 4 أغسطس 2007 في 19:58

#2
kal7hos كتب:
لاظهار البيانات في form بعد عملية الاتصال

تتيح لك vs2005 عدد صور لاخراج البيانات واظهارها علي form سواء في داخل جدول datagrideshow او listbox او غيرها كثير

سوف اختار اظهار عمود qest في listbox

من نافذة Data Sources اضغط علي علامة + حتي تظهر كل اعمدة الجدول

سوف تجد سهم لاسف بجانب كل عمود

بالضغط عليه سوف تظهر لك خيارات الاخراج

سوف اختار اخراج هذا العمود في صورة listbox

12.JPG

بعد الاختيار قم بسحب العمود qest من نافذة Data Sources بزر الماوس الايسر وقم بتحرير الماوس علي ال form

سوف يظهر لك الشكل

13.JPG

حيث يتم اضافة العناصر الاتية علي الفورم

Listbox ، mydataDataSet ، qestBindingSource ، qestBindingNavigator

وهذا الاخير هو شريط الادوات الذي تم اضافته في اعلي الفورم للتعامل مع البيانات

والان لاخراج البيانات من قاعدة البيانات في ال listbox

اتبح الصور التالية

14.JPG

15.JPG

16.JPG

17.JPG

18.JPG

19.JPG

الان تم اظهار البيانات وربطها

للتجريب اضغط علي run او f5

20.JPG

سوف تظهر النافذة بهذا الكل وقد تم الربط واظهار البيانات بدون كتابة أي كود

21.JPG

لاحظ ظهور البيانات بمجرد تحميل النافذة

وهذا يعني ان امر التنفيذ تم وضعه في load للفورم

سوف نستخدم هذا الامر فيما بعد

والان تم الربط بين قاعدة البيانات واظهار محتوياتها في الفورم بدون كتابة أي كود

#3
kal7hos كتب:
نريد الان التحكم في عرض البيانات باستخدام شروط لاظهار البيانات

لذلك سوف نقوم بادارج زر امر commandbutton ونعطيه الاسم butt1

ونقوم بادراج مربع نص textbox ونعطيه الاسم TBox1

كما يتضح بالصورة

22.JPG

ما نريد عمله الان هو الا نقوم بعرض البيانات مع تحميل الفورم

وانما نقوم بعرض البيانات عند الضغط علي زر الامر وبناءا علي الكلمات المكتوبة في مربع النص

بمعني ان زر الامر سوف يقوم بدور زر بحث في قاعدة البيانات عما في مربع النص

لذلك نحتاج الي تعديل الاستعلام الذي تم انشاء تلقائيا عند انشاء الاتصال

ولعمل ذلك

من نافذة Data Sources نضغط كليك يمين علي mydataDataSet ونختار منها edit dataset with designer كما هو موضح بالصورة

23.JPG

سوف يظهر لنا تبويب mydataDataSet.xsd وبه الجداول الموجودة في قاعدة البيانات وظهر فيها الاعمدة

كما يظهر ايضا qestTableAdapter والذي يحتوي علي الاستعلامات المنشاة علي الجدول

24.JPG

طبعا هو ده هدفنا

25.JPG

بالوقوف علي اسم الاستعلام بالماوس يعطي لنا جملة SQL التي بني عليها

سوف نفتح الاستعلام الافتراضي Fill ونعدل فيه ، ولعمل ذلك اتبح الصور التالية

26.JPG

27.JPG

بالضغط علي query builder تظهر النافذه التالية

28.JPG

والمكونة من اربع اقسام

القسم الاول خاص باظهار الجداول

والقسم الثاني خاص بادخال البيانات والمعايير

القسم الثالث يقوم باظهار جملة sql للاستعلام

القسم الرابع يقوم باظهار ناتج الاستعلام عند تنفيذه

القسم الاول والثاني مشابه لجزء الاستعلامات في الاكسيس

قم بادخال الشرط التالي مقابل عمود qest كما هو موضح في الصورة التالية

29.JPG

ثم اضغط علي execute query

30.JPG

سوف تظهر نافذة لادخال ما تبحث عنه ، ادخل أي قيم وليكن ما

31.JPG

سوف تظهر النتيجة في الجزء الرابع من النافذة السابقة

32.JPG

استكمل المعالج كما يظهر في الصورة

33.JPG

34.JPG

35.JPG

نلاحظ تغير جملة sql عند الوقوف علي اسم الاستعلام

36.JPG

والان نريد ربط هذا الاستعلام بزر الامر و مربع النص

طبعا كما قلنا سابقا ان هذا الاستعلام ينفذ الان عند تحميل الفورم

وبالتالي الامر التنفيذي له تحت load للفورم

37.JPG

وبالتالي ما علينا هو ان ناخذ هذا الكود من تحت load للفورم

نضعه تحت click لزر الامر butt1

ولعمل ذلك

قم بالضغط مرتين علي الفورم وفيظهر لك الكود لتحميل الفورم

ويظهر تحته امر تنفيذ الاستعلام

كما يظهر في الصورة السابقة

قم بقص هذا الامر

قم ارجع الي الفورم مرة اخري

واعمل دبل كليك علي زر الامر

والصق تحته كود التنفيذ كما يظهر في الصورة التالية

38.JPG

ظلل الكود باستخدام الماوس

ثم اضغط كليك يمين عليها واختر surround with ومنها اختر try

ثم عدل الكود ليصبح كما يلي

39.JPG

لاحظ اضفنا TBox1.Text في نهاية كود الاستعلام حتي ياخذ القيمة من مربع النص

والان اضغط F5 لتشغيل البرنامج

لتري النتيجة

40.JPG

وهكذا تم الربط مع قاعدة البيانات بدون كتابة أي كود جديد ، فما حدث هو التعديل علي الموجود بالفعل

من هنا تبدا معي المشكلات

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

اتمني لك التوفيق

سوف ارفق المشروع باكمله في المرة القادمة مع المشكلة

#4

سلام عليكم جميعا

متاسف كثيرا لاعادة كتابة الموضوع من البداية

وده بسبب نقل الموضوع الي هذا المنتدي

مما ادي فقدي لامكانية التحرير في مشاركتي لتعديل ارتباطات الصور

لذلك ارجو من المشرفين حذف المشاركات الاولي التي لا تظهر بها الصور

ولكم جزيل الشكر

#5

جزاكم الله خيرا يا أخ kal7hos

وأرجو فعلا حذف النسخة العلوية لانني كدت ايأس من عدم ظهور الصور واغلق الموضوع قبل ان ارى الصور بالاسفل في الاعادة! :)

#6

يعطيك العافية اخي العزيز

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

#7

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

نتابع استكشاف تسهيلات فيجوال استوديو 2005 للتعامل مع قواعد البيانات بدون اكواد او بعني اخر بالاعتماد علي الاكواد التلقائية التي ينشها الفيجوال استوديو

ارجو من محترفي السي شارب مساعدتي في ذلك

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

وذلك بالاعتماد علي جملة select والتي يمكنك كتابة أي جملة من جملها لتخصيص مخرجات بياناتك

ننتقل الان الي جزء الاخر من التعامل مع قواعد البيانات او بمعني اخر الجزء العكسي

المطلوب الان ادخال بيانات الي قاعدة البيانات من خلال السي شارب

سوف ننشئ الان استعلام query جديد لعمل ذلك

نضغط كليك يمين علي qestTableAdapter ونختار add query

11644cf488.JPG

ثم نتابع مع المعالج

f494b07bcf.JPG

ونختار نوع ال query كما بالصورة

bc8dc3f35b.JPG

تظهر لنا جملة sql الافتراضية نقوم بالضغط علي build query

2f620839d9.JPG

تظهر لنا نافذة build query ويظهر فيها جملة sql المبنية عليها

وفي حالتنا هنا هي جملة مضبوطة مناسبة تماما

حيث تعني انه يدرج القيمة التي ياخذها من ? في عمود qest من جدول qest

لتنفيذ الاستعلام للتاكد من عمله نضغط علي execute query

402056d4b1.JPG

فتظهر لنا نافذة كي نضع فيها قمة للمتغير ? حتي ياخذ هذه القيمة ويضعها في الجدول

19c7d0217a.JPG

اكتب ما تريد في قمية المتغير وليكن " ماذا تعلم عن سي شارب "

ثم اضغط ok

سوف تظهر لك نافذه تاكيد بعدد الصفوف التي تام اضافتها بالفعل في قاعدة البيانات

1121021568.JPG

اضغط ok ثم تابع مع المعالج

1d4efbb800.JPG

حتي ظهور اسم الاستعلام query والذي يعتبره function

deac80a172.JPG

تابع مع المعالج لحين الانتهاء

b1e2e095c2.JPG

#8

سوف تلاحظ ظهور الاستعلام query في نافذة qestTableAdapter

وبالوقوف عليه تظهر جملة sql التي يعتمد عليها

fc2665a2f6.JPG

طبعا المفرض انه في اضاف بالطريقة دي صف في قاعدة البيانات عندما عملنا execute query

وللتاكد من ذلك نضغط F5 لتشغيل البرنامج ونري النتيجة

بعد التشغيل اضغط علي زر search بدون كتابة أي شئ في مربع النص

أي اننا لم نحدد شئ للبحث عنه

وبالتالي سوف يعرض جميع القيم

سوف تلاحظ اضافة سطر جديد بالفعل داخل ال lestbox وزيادة عدد السجلات الكلي الي 18

4e6070020a.JPG

وللتاكد من اضافته بالفعل الي قاعدة البيانات ، نفتح الجدول في قاعدة البيانات الاصلية ونري النتيجة

766ec9edda.JPG

بالفعل اضافة في قاعدة البيانات

وهذا يعني ان هناك كود فعلي تم تكوينه تلقائيا داخل السليوشن لتنفيذ هذا لامر

والان ما نريده هو ان نستخدم هذا الكود الذي تم انشائه تلقائيا لربطه زر امر ومربع نص

بحيث نكتب المطلوب ادخاله في مربع النص ثم نضغط علي زر الامر لادخاله الي قاعدة البيانات

سوف ننشئ زر الامر butt2 ومربع النص TBox2 مع ملاحظة انه يمكن استخدام butt1 بدلا من butt2

ولكن سوف نضعه هنا في زر بمفرده للتسهيل

00b50a4ace.JPG

سوف نستخدم نفس الكود الذي تم انشاءه تلقائيا عند انشاء استعلام في الدرس السابق

ولكن مع تبديل اسم الاستعلام بدلا من Fill الي Insert Query

نضغط دبل كليك علي زر الامر insert

فيظهر لنا الكود

839c8ce1ef.JPG

نقوم بنسخ الكود من الامر السابق ووضع في الحال

f6b211270d.JPG

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

ونستخدم الكتابة خاصية الاكمال التلقائي

e73e3cc595.JPG

81f4bc7ed3.JPG

5827a3daf8.JPG

28bdd1803a.JPG

عند فتح القوسين بعد insert query يعطي الاكمال التلقائي عدد المعاملات الواجب وضعها بين الاقواس ونوع هذه المعاملات

من الواضع انه يريد معامل من نوع string أي نصوص

وهنا سوف نضع نحدد له مربع النص TBox2 حتي ياخذ القيمة المكتوبة فيه ويدخلها في الجدول

48b8b160af.JPG

ثم نحذف السطر العلوي ليصبح الكود النهائي بالصورة

f574de5014.JPG

والان بعد ان ادرجنا القيمة السابقة

نريد انه يحفظ التعديلات التي تمت علي الجدول

لذلك سوف نستخدم update

نلاحظ ان فيجوال 2005 قد اضافها اصلا في شريط الادوات المضاف من البداية عند انشاء اتصال مع الجدول و listbox

b4d969d708.JPG

بعمل دبل كليك علي ايقونة الدسك الظاهره في شريط الادوات

فيظهر الكود الخاص بعملية ال update

80e4b37a28.JPG

والان اصبح عندنا زر لاضافة سجل جديد في جدول قاعدة البيانات وزر حفظ لهذه البيانات

نضغط علي F5 لتشغيل البرنامج

نكتب " تجريب الادخال " في مرب النص

ثم نضغط علي زر insert

ثم نضغط علي رمز الدسك للحفظ

ثم نضغط علي زر search لاظهار الناتج

d40832cc22.JPG

فيظهر الناتج ومن بينه ما تم ادخاله

54e8d0550d.JPG

هنا يعني انه بالفعل ادخل سجل جديد داخل الجدول

الا انه منا تبدا المشاكل

عند اختبار الادخال وعندما نقوم باغلاق البرنامج واعادة تشغيله مرة اخري

لان نجد ما تم ادخال سابقا

وايضا عندما نفتح قاعدة البيانات لا نجد فيها أي شئ تم ادراجه

مع انه تم تنفيذ الادخال سابقا عند الضغط علي execute query

أي ان خاصية الادخال موجودة في الكود المتكون

جربت عدة محاولات ولم تصلح

حتي باستخدام الكود

ارجو من محترفي سي شارب مساعدتي فقد ارفقت نسخة من المشروع

وربنا معاك

#9

عذرا نسيت المرفقات

database.zip

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…