اخر عشرة مواضيع بالمنتدى
80برنامج لجميع انواع الموبيلbeshoy بواسطة: beshoy sa3ed | نكت قبيحه جدا جدا ممنوع دخول البنات بواسطة: m7mod | الدكـاتـره والشنـط الـجـلـد بواسطة: m7mod | جميع أهداف الألمانى توماس موللر الذى حصل على لقب الهداف فى كأس العالم 2010 بواسطة: m7mod | تعلم كيف تتغلب علي قلة الثقة بالنفس بواسطة: mba degree | تعلم مهارات الاتصال الفعال بواسطة: mba degree | مهارات الاتصال الفعال بواسطة: mba degree | كيف تكون شخص منظم و تترك انطباع جيد عند الاخرين بواسطة: mba degree | كيف تنمي مهارة الابداع في شخصيتك بواسطة: mba degree | مهارات ااقناع بواسطة: mba degree
موضوع مغلق 
 
تقييم الموضوع:
  • 0 اصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس 15 التعامل مع البيانات بشكل مرئي
01-27-2010, 03:07 PM (اخر تعديل لهذه المشاركة : 01-31-2010 01:18 AM بواسطة مصطفى الشريف.)
مشاركات: #1
الدرس 15 التعامل مع البيانات بشكل مرئي
السلام عليكم

تعلمنا فيما سبق التعامل مع ال ADO.Net من خلال الفصائل SqlCommand و SqlConnection و Data Reader و Table adapter و data Adapter و Data Set و كان ذلك من الكود
اليوم سنتعامل مع فواعد البيانات بشكل مرئي من خلال بيئه التطوير نفسها

لكي يكون لديك فكره عما سنفعله فأننا سنتعامل مع كائن DataSet
ذلك الكائن سيقوم بدور مخزن للجداول البيانات كما تعلم..
لكل جدول سنتعامل مع كائن اسمه TableAdapter حاجه ذي ال DataAdapter.وكما تعلم تلك الاداه هي المسؤله الاتصال بالجدول وتنفيذ الاستعلامات....


ارجو متابعه الشكل التالي:-




سنقوم الان بتطبيق برنامج بسيط يتعامل مع قاعده بيانات Access
اسمها EmployeeData
تحتوي جدولين
الاول اسمه Data
بنيته كالتالي
حقل EmployeeName نوعه Text وهو ال Primary Key
حقل EmployeeAge نوعه Number
حقل EmployeeSalary نوعه Currency

الثاني اسمه Attend_reg بمعنى سجل الحضور
بنيته كالتالي
حقل EmployeeAge نوعه Number
حقل EmployeeSalary نوعه Currency
لاحظ هذا الجدول لا يحتوي على مفتاح او Primary key


بهذا نكون انتهينا من قاعده البيانات .
الان
ابدأ مشروع جديد من نوع Windows

من القائمه Data اختار Show Data Source
ومن الاطار Data Source اضغط على Add new data source



من النافذه التي ستظهر لك اختار نوع البيانات DataBase ثم Next



من النافذه التي ستظهر لك بعنوان choose your data Connection
اضغط على الزر New Connection

ستظهر لك نافذه Add connection
لاحظ ان ال Data Source يشير الى
Microsoft Access DataBase File OLE BD

ان لم يكن كذلك اضغط على الزر Change و اختار Microsoft Access DataBase File OLE BD

ثم من النافذه Add connection اضغط على Browse و اختار مكان قاعده البيانات وقم بكتابه اسم المستخدم و كلمه السر اذا لزم الامر ,, اضغط test Connection
لأختبار الاتصال ..ثم اضغط Ok
ثم Next بالنافذه choose your data Connection



تظهر لك بعد ذلك النافذه Save Your connection string to the app

التي تسألك هل تريد حفظ نص الاتصال بالتطبيق
ضع علامه على Yes Save Connection as

ثم اضغط next
لتظهر النافذه Choose your DataBase Objects
التي من خلالها تختار منها الجداول التي ستدمج مع ال DataSet وتحديد اسم ال DataSet الذي سيكون EmployeeDataSet.




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



الجدير بالذكر أن الفيجوال ستديو دوت نت يملك خاصية أعادة نسخ كافة ملفات المشروع (ملفات البرنامج من الملف التنفيذي والمكتبات الديناميكية و قواعد البيانات ) إلى مجلد التجريب /Debug/bin

ففي حال قمت بتجربة البرنامج ومن ثم قمت بتعديل بسيط جداً كأن غيرت موقع ليبل بالتصميم سيعود البرنامج وينسخ القاعدة الجديدة من مجلد ملفات المشروع (القاعدة الرئيسية هناك ) إلى مجلد التجربة /Debug/bin, وعندها ستفقد المعلومات القديمة في القاعدة القديمة التي تم الكتابة فوقها (وتعتقد بأن البرنامج لم يحفظ البيانات )


يمكنك بتعديل خاصية copy to output directory لملف قاعدة البيانات في ال Project explorer وأجعلها تساوي Do not copy
وبهذه الطريقة وأثناء التجريب لن تفقد المعلومات المضافة للبرنامج في كل تجربة
لكن لاتنسى أعادة وضع قاعدة بيانات نظيفة (القاعدة من مجلد ملفات المشروع ) بعد الأنتهاء وتحزيم البرنامج

ويمكنك أيضاً تجربة البرنامج بشكل مباشر من مجلد /Debug/bin وسترى أن المعلومات تبقى محفوظة كل مرة


من الاطار DataSource اختار الملف EmployeeDataDataSet
واضغط على الزر Edit DataSet With Designer

لتظهر لك النافذه التاليه



تلك النافذه تحوي على تمثيل مرئي لل Data Set
لاحظ لكل جدول يوجد اداه TableAdapter وكما تعلم تلك الاداه هي المسؤله عن الاتصال بقاعده البيانات..وتنفيذ الاستعلامات

ما أشير اليه بالصوره في اطار خصائص ال TableAdapter هو الخواص التاليه

1-Connection : وهو يحدد طريقه الاتصال بقاعده البيانات
اضغط على علامه + بجانبه لتظهر الخاصيه
1-1- ConnectionString وهو يمثل نص الاتصال او ال Connection String الذي يتم تحديد اسم قاعده البيانات و مكانها من خلاله ..ويمكن تغييره فيما بعد.
__________________________________________________________
2-DeleteCommand :وهو يحدد امر مسح السجل لاحظ انه سيساوي None لو ان الجدول لا يحتوي على Primary Key
اضغط على علامه + بجانبه لتظهر الخاصيه
2-1-Command Text وهي تمثل استعلام SQL يقوم بألغاء سجل معين لاحظ ان الاستعلام يستخدم ال Parameters او المعاملات .

2-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن).

2-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر.
________________________________________________________

3-InsertCommand :وهو يحدد امر اضافه السجل لاحظ انه سيساوي None لو ان الجدول لا يحتوي على Primary Key
اضغط على علامه + بجانبه لتظهر الخاصيه
3-1-Command Text وهي تمثل استعلام SQL يقوم بأضافه سجل معين لاحظ ان الاستعلام يستخدم ال Parameters او المعاملات .

3-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن).

3-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر.
________________________________________________________

4-SelectCommand :وهو يحدد امر Select لاحظ انه لا يعتمد على Primary Key
اضغط على علامه + بجانبه لتظهر الخاصيه
4-1-Command Text وهي تمثل استعلام SQL يقوم بأسترجاع كافه السجلات.

4-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن).

4-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر.
________________________________________________________

5-UpdateCommand:وهو يحدد امر تعديل السجل لاحظ انه سيساوي None لو ان الجدول لا يحتوي على Primary Key
اضغط على علامه + بجانبه لتظهر الخاصيه
5-1-Command Text وهي تمثل استعلام SQL يقوم بتعديل سجل معين لاحظ ان الاستعلام يستخدم ال Parameters او المعاملات .

5-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن).

5-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر.
_____________________________________________________

الان ارجع للفورم الخاص بالمشروع ومن الاطار Data Source قم بسحب الجدول Data و افلاته على الفورمه كالتالي




لاحظ اضافه المكونات التاليه للفورمه



نبدأ بال EmployeeDataDataSet وتلك الاداه هي نسخه من حاويه البيانات او ال Data set الموجوده بالمشروع

اما ال DataTableAdapter هو نسخه من ال TableAdapter الموجوده كذلك بالمشروع.

اما ال DataBindingSource فهي تمثل طبقه بين ال DataTableAdapter و الادوات الخاصه بالتعامل مع المستخدم مثل الاداتين DataDataGridView و DataBindingNavigator و ازرار التحكم...

اما الDataDataGridView فهي الاداه الخاصه بعرض الجدول لاحظ الخاصيه
DataSource التي تحدد فيها مصدر البيانات لاحظ انني حدته DataBindingSource وممكن تربطها مباشره بال DataSet
ايضاً الخاصيه DataMember و التي تحدد الجدول الذي سيتم استعراضه لاحظ اننا لم نحدده لأننا حددناه في الاداه DataBindingSource على الجدول Data .

اما الاداه DataBindingNavigator فوضيفتها توفير وسيله سهله وسريعه للتنقل بين السجلات كذلك تعديل السجلات واضافه سجلات جديده وحذف السجلات.

بهذا نكون انتهينا من ربط قاعده البيانات مع الفورم
قم بتشغيل البرنامج على هذا الوضع وقم بتجربته
يتبع...
اخر مواضيعى


01100001-00101101-01101100-00101101-01101100-00101101-01100001-00101101-01101000
عرض جميع مشاركات هذا العضو
02-05-2010, 04:27 AM (اخر تعديل لهذه المشاركة : 02-27-2010 05:51 PM بواسطة مصطفى الشريف.)
مشاركات: #2
Rainbow RE: الدرس 15 التعامل مع البيانات بشكل مرئي
السلام عليكم

نكمل تطبيق المثال السابق:

لاحظ انه تم اضافه الاجراء التالي بشكل اّلي للكود الخاص بالفصيله Form1

PHP كود:
'TODO: This line of code loads data into the 'EmployeeDataDataSet.Data tableYou can move, or remove it, as needed.
        
Me.DataTableAdapter.Fill(Me.EmployeeDataDataSet.Data

حيث تم استدعاء الاسلوب Fill. الخاص بالاداة DataTableAdapter الذي يستقبل معامل من النوع DataTable وقد مرر له الاجراء الجدول EmployeeDataDataSet.Data.

كذلك تم اضافه الاجراء التالي بشكل اّلي للكود الخاص بالفصيله Form1

PHP كود:
Private Sub DataBindingNavigatorSaveItem_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles DataBindingNavigatorSaveItem.Click
        Me
.Validate()
        
Me.DataBindingSource.EndEdit()
        
Me.DataTableAdapter.Update(Me.EmployeeDataDataSet.Data)
    
End Sub 

و يتم تنفيذ الاجراء السابق عند الضغط على زر DataBindingNavigatorSaveItem
الخاص بالأداة DataBindingNavigator
حيث يتم استدعاء الاسلوب
Validate. الخاص بالكائن Me
الذي يقوم بوضيفه التحقق من الادخالات في الاداه DataGridView

كذلك يتم استدعاء الاسلوب ()EndEdit. الخاص بالكائن DataBindingSource الذي كما تعلم يمثل طبقه وسيطه بين الادوات الخاصه بالتعامل مع المستخدم والكائن DataTableAdapter .

كذلك الاسلوب Update الخاص بالكائن DataTableAdapter
الذي يستقبل معامل من النوع DataTable وقد مرر له الاجراء الجدول EmployeeDataDataSet.Data المعدل ليرسل التعديلات لقاعده البيانات.


الان دعنا نعدل المثال ليعمل بواجه استعمال معهوده او معروفه
قم بمسح الاداه BindingNavigator1
كذلك قم بمسح الاجراء DataBindingNavigatorSaveItem_Click من كود الفصيله Form1.

ثم قم بأضافه ألادوات التاليه:

3 اداه زر امر واحد بأسم جديد
و اّخر بأسم حفظ
و اّخر بأسم حذف

ادخل الكود التالي في حدث الضغط في الزر جديد

PHP كود:
Me.DataBindingSource.AddNew() 

لاحظ ان الكود السابق يقوم بأستدعاء الاسلوب ()AddNew. الخاص بالأداه DataBindingSource الذي يقوم بتأهيل الادوات المربوطه به من خلال الخاصيه DataSource التي تجدها في اغلب الادوات التي تتعامل مع المستخدم مثل ال DataGridView

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

الان نأتي للكود الخاص بحفظ البيانات:

PHP كود:
Try
            
Me.Validate()
            
Me.DataBindingSource.EndEdit()
            
DataTableAdapter.Update(Me.EmployeeDataDataSet.Data)
            
MsgBox("تم التعديل")
        Catch 
ex As Exception
            MsgBox
(" فشل التعديل بسبب  " Chr(10) & ex.Message)
        
End Try 

لاحظ اننا استخدمنا الجمل Try..Catch..End Try للتأكد من صحه اتمام العمليه حيث في حاله حدوث خطأ سيتم تنفيذ الكود بين جمله Catch ex As Exception وجمله End Try حيث نعرض رساله تشير الى الخطأ :

MsgBox(" فشل التعديل بسبب " & Chr(10) & ex.Message).
حيث استخدمنا الداله Chr(10) التي تعود بزر الادخال Enter لعرض سطر جديد وثم
استخدمنا الاسلوب Message. الخاص بالكائن ex لعرض محتوى رساله الخطأ.


في الكود السابق استخدمنا الاسلوب update. الخاص بالكائن DataTableAdapter حيث يتم تمرير كائن جدول الذي هو في حالتنا Data حيث يتم استدعاء جمله SQL مخزنه بالكائن DataTableAdapter لتقوم بوظيفه ادخال البيانات بالجدول.


نأتي الان لكود حذف البيانات :
PHP كود:
If Me.DataBindingSource.Count 0 Then
            MsgBox
("لا يوجد سجلات")
            Exit 
Sub
        End 
If

        
Me.DataBindingSource.RemoveCurrent()
        Try
            
Me.Validate()
            
Me.DataBindingSource.EndEdit()
            
DataTableAdapter.Update(Me.EmployeeDataDataSet.Data)
            
MsgBox("تم التعديل")

        Catch 
ex As Exception
            MsgBox
(" فشل التعديل بسبب " ex.Message)
        
End Try 

في الكود التالي نتأكد اولاً من وجود سجل بالجدول Data من خلال استدعاء الاسلوب Count. الخاص بالكائن DataBindingSource
كود:
If Me.DataBindingSource.Count = 0 Then
            MsgBox("لا يوجد سجلات")
            Exit Sub
End If

ثم يكمل البرنامج تنفيذ الكود الخاص بحذف البيانات

كود:
Me.DataBindingSource.RemoveCurrent()
        Try
            Me.Validate()
            Me.DataBindingSource.EndEdit()
            DataTableAdapter.Update(Me.EmployeeDataDataSet.Data)
            MsgBox("تم التعديل")

        Catch ex As Exception
            MsgBox(" فشل التعديل بسبب " & ex.Message)
        End Try

عرض جميع مشاركات هذا العضو
موضوع مغلق 


المواضيع المحتمل ان تكون متشابهة.
الموضوع: الكاتب الردود: المشاهدات: اخر رد
Rainbow الدرس 22 Win32 API DataType مصطفى الشريف 5 553 06-30-2010 06:18 PM
اخر رد: مصطفى الشريف
Rainbow الدرس 21 Win32 API نظره للغه البرمجه C مصطفى الشريف 0 95 06-29-2010 05:32 PM
اخر رد: مصطفى الشريف
Rainbow الدرس 20 مقدمه Win32 API and .Net مصطفى الشريف 2 657 04-21-2010 03:38 AM
اخر رد: مصطفى الشريف
Rainbow الدرس 18 توزيع البرامج مصطفى الشريف 0 566 03-06-2010 12:41 AM
اخر رد: مصطفى الشريف
Rainbow الدرس 17 Crystal Report مصطفى الشريف 2 1,164 03-03-2010 05:29 PM
اخر رد: مصطفى الشريف
Rainbow الدرس 16 Crystal Report مصطفى الشريف 2 944 02-27-2010 03:42 PM
اخر رد: مصطفى الشريف
  الدرس 14 ADO.Net مصطفى الشريف 1 1,182 11-27-2009 09:00 PM
اخر رد: مصطفى الشريف
Rainbow الدرس 13 ADO.Net مصطفى الشريف 1 764 11-13-2009 06:45 PM
اخر رد: مصطفى الشريف
Rainbow الدرس 12 ADO.Net مصطفى الشريف 1 1,411 10-25-2009 12:50 AM
اخر رد: مصطفى الشريف
Rainbow الدرس العاشر التعامل مع النماذج مصطفى الشريف 0 1,135 10-03-2009 10:36 PM
اخر رد: مصطفى الشريف
Rainbow الدرس التاسع الفصائل مصطفى الشريف 2 842 09-28-2009 04:48 PM
اخر رد: مصطفى الشريف
Rainbow الدرس الثامن الدوال و الاجرائات2 مصطفى الشريف 2 1,425 09-07-2009 10:52 PM
اخر رد: مصطفى الشريف
Rainbow الدرس السابع تحويل انواع البيانات مصطفى الشريف 0 694 08-07-2009 03:37 AM
اخر رد: مصطفى الشريف
Rainbow الدرس السادس توجيه الكود مصطفى الشريف 0 640 08-03-2009 04:20 PM
اخر رد: مصطفى الشريف
Rainbow الدرس الخامس المتغيرات والثوابت وانواع البيانات2 مصطفى الشريف 0 1,035 07-18-2009 01:08 AM
اخر رد: مصطفى الشريف

التنقل السريع:

إتصل بناشباب دمنهورالعودة للأعلىالعودة للمحتوىالأرشيفخلاصات RSS
Bookmark and Share Free counter and web stats Powered by  MyPagerank.Net