شرح طرق التعامل مع الداتا بيز ( اضافه - تعديل - حذف - بحث ) بأفضل الأساليب خطوه بخطوه

الناقل : elmasry | الكاتب الأصلى : eldoktor007 | المصدر : www.absba.org

ان شاء الله اليوم سوف اشرح ابسط واسرع طرق التعامل مع قواعد البيانات وكيفيه اجراء العمليات المشاعه ولتى نكثر فى استخدامها فى مشاريعنا المربوطه بالداتا بيز وهيه مثل ..

( اضافه - تعديل - حذف - بحث )

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

بالنسبه لمحرك الداتا بيز الى هانستخدمها فى درس اليووم هوه SQL Server 2005
وبالنسبه الى الغه المستخدمه للتعامل مع الداتا بيز هيه Visual Basic.net 2008

وبأذن الله نبداء الشرح

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

قبل اى شىء لازم نجهز الداتا بيز التى سنعمل عليها فا اول شىء لازم نعمل دون لوود لداتا بيز من هذا الرابط

http://www.mediafire.com/?emkb23gwnj9

وهيه بأسم AdventureWorksDB
والحجم 27.3 MB
وطريقه استخدامها كالتالى :-

بعد تحميل الملف
1- نفتح SQL Server Management Studio Express
2- كليك يمين على مجلد Database من القائمه ثم اختر Attach
3-ثم نضغط على زر Add (سوف يتم فتح المسار للداتا بيز الموجود على جهازك )
4- نختار اسم الداتا بيز بتعتنا وهيه AdventureWorksDB ونضغط على زر OK
5- بعد الاختيار لآتمام العمليه نضغط OK

علشان يكون عندنا الشكل انهائى مل هذا



بعد الانتهاء من اضافه الداتا بيز ننتقل الى Visual Studio لبدايه العمل على الداتا بيز

ننشاء مشروع بأسم وليكن مثلا Absba Training

فى هذا سنتعلم التعامل مع الداتا بيز بدون كوود يعنى هانشتغل بطريقه Wizard وهيه فى الفيجوال استديو 2008 قويه جدا وبنقدر نحدد منها كل شىء نريده
فى ناس كتير لحد الآن بتستخدم الكوود من فى التعامل مع الداتا بيز وينسوا بقى كود معين ويطلع ايرور غريب بالنسبه ليهم فالطريقه دى بتوفر وقت ومجهود
بس قبل ما تستخدمها لازم تكون فاهم الادوات الى بنحتاجها للتعامل مع الدتا بيز مثل
(data set ,data adapter ) الخ الخ

اول خطوه بعد انشاء المشروع هيه الأتصال بالداتا بيز وخطوتها كالتالى

لازم الاول نظهر قائمه الدتا سورس كالتالى :-



ثم



سيظهر وجهه لآختيار نوع الداتا سورس والافتراضى لها هوه database ثم نضغط على زر Next

ثم



ثم



ثم نختار اسم SQL Server ونختار اسم الداتا بيز الى راح نشتغل عليها



ثم



ثم نختار الجداول الى بنريد نستخدمها فى مشروعنا طبعا انا فى المثال ده اخترت كله



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

بكل بساطه نذهب الى SQL Server لآضافه الجدول كالتالى



ثم نجهز الجدول بالشكل ده



ثم نعمل Save بأسم Test


الى هذا الحد ينتهى عملنا مع SQL server ثم ننتقل الى Visual Studio ونتبع التالى



ثم نختار اسم الجدول المراد اضافته



وتمت الاضافه بنجاح



بعد التعرف على الاتصال باداتا بيز ننتقل الى طريقه ربط الداتا بيز مع وجهه البرنامج

احنا هانتعامل مع الجدول الى احنا عملناه ( TEST)

مبدئيا احنا محتاجين نصمم وجهه مثل هذا الشكل



كما هوه موضح امامكم الفورمه بسيطه موجود فيها اداه ToolStrip و Group Box و Button
وهانشرح استخدمنا لهذه الوجه لاحقا
الان بعد ما خلصنا التصميم الغير مربوط بالدتا بيز نيجى للخطوه التاليه وهيه وضع الكنترول المربوطه بالداتا بيز
كل ما علينا هوه استخدام طريقه ( السحب والافلات ) او (Drag and Drop ) لآعمده الجدول المراد ربطه بالوجهه وفى مثالنا هذا سوف نستخدم جدول TEST الى احنا عملناه مسبقا كالتالى



بعد انتهاء من هذه المرحله نعدل الشكل ليصبح كالتالى :



لو احنا عملنا RUN للبرنامج فى هذه المرحله راح يظهر الداتا الموجوده فى الجدول TEST
وهذا بسبب وجود كود تم كتباته تلقائيا عند سحب وافلات الاعمده الى وجهه البرنامج وهوه راح يكون بهذا الشكل



طيعا احنا ملاحظين ان الكود موجود فى حدث Form Load

طيب احنا لقينا كوود موجود جاهز احنا عايزين نعمل كود زى ده بس على حسب احتياجتنا احنا السؤال هوه كيف نضيف جمل الـ SQL للآضافه سجل او تعديله او ازالته واين جمله الـ FIll المستخدمه فى حدث الـ Form Load التى امامنا كل هذه اسئله سيتم اجابتك عليها حالا

احنا لو تفقدنا الناحيه اليمنى من الفيجوال استديو سنجد قائمه بأسم Solution explorer
وسنجد شكل بأسم AdventureWorksDataSet.xsd كما فى الشكل التالى



افتحها (دبل كليك عليها ) سترى جميع الجداول الموجود فى الدتا بيز AdventureWorksDB وجميع العلاقات ما بين الجداول وبعضها
وسنرى ايضا جدولنا TEST موجود بالشكل التالى



نلاحظ وجود جمله الـ Fill واذا اخذنا الفضول لآستكشاف ما بداخلها من كود سنتبع التالى

نضغط كليك يمين على الجمله ثم



ونلاحظ التالى



الجمله التى امامنا هيه المسئوله فى جمله الـ Fill او ملىء البيانات من Data Base الى Data Set

الان وقد وضح الينا الامر واجابه السؤال ( اين سنضع جمل الـ SQL الخاصه بنا )

والأن نبداء بأضافه جمله Insert

نتبع التالى



ثم



ثم نحدد نوع العمليه



ثم سنرى ان الفيجوال استديو قد كتب الكود تلقائيا



ثم نحدد اسم جمله الـ SQL



ثم



وهاقد انتهينا من باضافه الجمله بشكل صحيح



والان مع جمله التعديل

طريقه اضافه جمله التعديل تكون بنفس طريقه اضافه جمله الأضافه ولكن سوف يختلف فى امرين

اولا :- سوف نختار Update بدلا من Insert
ثانيا :- مش هاتلاقى كوود مكتووب جاهز وده لازم تعمله بنفسك تعالى نشووف مع بعض

نعدل الاختيار الى Update



ولى اضافه الجمله الخاصه بـ Update اتبع التالى



ثم



ثم نضيف الجدول المراد التعامل معه



ثم



ثم نكتب جمله الـ UPdate



جمله من اساسيات جمله الـ Update انه يجب ان يكون به شرط مثل

كود:
Where ID=@ParID
وهيه تعنى انه عدل الصف بالبيانات Name and Age عندما يكون الـ ID يساوى @ParID
اى كلمه تيجى بعد رمز @ فا هوه متغير او بارمتر وهنا احنا عندنا ثلاث متغيرات
الاسم
والسن
ورقم الـ ID

وكلهم متغيرات حيث ان تعاملنا معه سيكون عن طريق المستخدم وليس شىء ثابت قد تعرفه اثناء كتابتك للبرنامج

بعد ذالك نكمل عمليه اتمام اضافه جمله الـ Update



ثم تمت بنجاح



والان مع الجمله الاخيره وهيه Delete

وهيه كامثل خطوات جمله Update فا هيه لا تنشاء بشكل اوتوماتيكى كامثل جمله الـ Insert
ويجب ايضا وضع شرط لها وسيكون معناه ( امسح عندما يكون رقم الـ ID = ؟ ) فا هنا يجب ايضا استخدام المتغير راح يكون اوله @

لنرى كيف ذالك



ثم



ثم



وانتهينا من جمله الـ Delete بنجاح







بعد مانتهينا من كتابه جمل SQL - Insert,Update,Delete يتبقى لنا استدعاء هذه الجمل فى المثال فا الجزء الى احنا هانتكلم فيه كله كود

فا انا هارفع الاول المشروع علشان تشوفوا معايا الشرح وتقدروا تتباعوا كلامى

حمل المشروع من هنا

بعد تحميل الملف نبداء نفتح صفحه الكوود وتابعوا الشرح علشان هاشرحه جزء جزء

[CODE] Dim Mode As String


اول سطر هانلاقى متغير
متغير هوه Mode ووظيفته تخزين مؤقت لنوع العمليه المراده وسيتم ايضاحه فيما بعد



كود:
  Sub View()         Me.IDTextBox.ReadOnly = True         Me.NameTextBox.ReadOnly = True         Me.AgeTextBox.ReadOnly = True         Me.ToolStrip1.Enabled = True         Me.GroupBox2.Enabled = False     End Sub
دى Sub وظيفتها انها بتحول الانترفيس الخاص باكنترول من وضع الاضافه الى وضع العرض اذا لاحظنا ان السطور هانلاقى اننا بنحجم اليوزر علشان مايكون عنده امكانيه تعديل اى بيانات موجوده فى وقت العرض وده طبعا شىء خاصه بالفورم وبعيد كل البعد عن الداتا بيز دى حاجه اختياريه ليك مش اكتر

كود:
 Sub Edit()         Me.IDTextBox.ReadOnly = True         Me.NameTextBox.ReadOnly = False         Me.AgeTextBox.ReadOnly = False         Me.ToolStrip1.Enabled = False         Me.GroupBox2.Enabled = True     End Sub
دى Sub ايضا بتقوم بعكس وظيفه الـ Sub الى قبلها

كود:
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         Me.TestTableAdapter.Fill(Me.AdventureWorksDataSet.Test)         View()     End Sub
الكود ده زى ماحنا شايفين فى الكود انه فى وقت تحميل الفورم والسطر الاول هوه وظيفته انه بيعمل تعبئه للبيانات من الداتا بيز الى الداتا سيت

والسطر الى فيه كلمه View
دى طبعا الـSub الى اتكلمنا عليها قبل كده بس هنا انا بعمل ليها Call



التول بار ده موجود فيه عمليات الداتا بيز الى راح تتعمل على البرنامج ده يعنى اليوزر قبل ما يبتدى يشتغل على العمليه الى عايزها لازم يختار النوع بتعها من التول بار وبناء عليه سيتم بداء العمليه بعد اختياره واتمام العمليه بالضغط على زر حفظ او الغاء

اول زر هوه Insert او الاضافه

كود:
   Edit()         Me.Mode = "Insert"         Dim RND As New Random         Me.IDTextBox.Text = RND.Next(99, 9999999)         Me.NameTextBox.Clear()         Me.AgeTextBox.Clear()
اول سطر احنا حطينا استدعاء للـ Sub الخاصه بأتاحه المستخدم للتعديل
تانى وضع اسم لنوع العمليه المراده وده شىء بنسميه فى البرمجه Flag علشان لما اجى اعمل سيف او تخزين للبيانات اقدر اعرف هاعمل سيف بناء على اضافه عنصر او تعديل عنصر وستضح الصوره لك بعد انتهاء الشرح ان شاء الله
بعد ذالك هاتلاقى متغير جديد من نوع Random وده علشان اصنع ارقاء عشوائيه علشان احطها فى خانه الرقم ID
وطبعا كل ده انا بشكل اختيارى وبرده بعيد كل البعد عن الداتا بيز

فى الزر الخاص بـ Update

كود:
  Edit()         Me.Mode = "Update"
هاعمل استدعاء فى اول سطر للـSub الى اسمها Edit
وايضا هاحدد نوع العمليه المراده عن طريق استخدام تكنيك الـ Flag

نيجى بقى للزر Delete وده هايكون كوده مؤثر وله علاقه بالداتا بيز بشكل مباشر

كود:
 Me.TestTableAdapter.DeleteQuery(Me.IDTextBox.Text)         Me.TestTableAdapter.Fill(Me.AdventureWorksDataSet.Test)

عند كتابه هذا السطر Me.TestTableAdapter سوف يظهر لنا جميع جمل الـ SQL التى تمت كتابتها فى الدرس السابق




ولو فى برامتر للجمله مثل رقم الـ ID نفتح قوس ونبتدى نكتبهم


والأن مع زر Save

كود:
   If Me.Mode = "Insert" Then             Me.TestTableAdapter.InsertQuery(Me.IDTextBox.Text, NameTextBox.Text, Me.AgeTextBox.Text)                    ElseIf Me.Mode = "Update" Then             Me.TestTableAdapter.UpdateQuery(Me.NameTextBox.Text, Me.AgeTextBox.Text, Me.IDTextBox.Text)          End If         Me.TestTableAdapter.Fill(Me.AdventureWorksDataSet.Test)         View()
طبعا هانلاحظ جمله شرطيه علشان نتأكد من نوع العمليه المراده سواء كانت اضافه او تعديل وبناء عليه يتم عمليه الحفظ

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

كل الود احبائى الكرام