عرض مشاركة واحدة
قديم 04-02-2008, 11:15 PM
  #32
محمد المعمري
مراقب سابق
 الصورة الرمزية محمد المعمري
تاريخ التسجيل: Oct 2007
الدولة: المنطقه الجنوبيه
المشاركات: 2,124
محمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond repute
Read رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )

Part4-تعريف Currency Manager
Currency Manager
ما هو Currency Manager أو مدير التعاملات؟
هو مجموعة من أدوات التحكم تقوم بإدارة الاتصال بقاعدة البيانات وربطها بالتطبيق وعرض البيانات داخل الفورم ولكن لكى نفهم معنى Currency Manager يجب أن نعرف مسار عملية الإتصال بقاعدة البيانات
-عندما تريد الإتصال بقاعدة البيانات بغرض التحكم فى محتوياتها فمعنى ذلك أنة قد صدر أمر منك من خلال هذا الإتصال الصادر منك إلى قاعدة البيانات وهذا يسمى Data Connection

وعلى ذلك ينبغى أن يتم الرد فى الوارد

ويسمى الوارد من قاعدة البيانات إليك Data Adaptor ويتضمن معلومات حول الجداول والحقول التى قمت باختيارها
إذن لدينا الان Data Connection و Data Adaptor
ولكن كيف يمكن معرفة محتويات القاعدة من خلال الإتصال وبمعنى أكثر وضوحا كيف وبأى طريقة سيتم عرض المحتويات
يتم تفصيل وتقسيم محتويات قاعدة البيانات فى جزء يعرف باسم DataSet حيث أنة يتم تحليل قاعدة البيانات إلى مكوناتها الرئيسية Tables وViews وStored Procedures و Functions ....الخ
كما يتم عرض مكونات الجداول أيضا من حقول

بعد ذلك تذهب كافة المعلومات إلى أداة الربط Binding Source ومن خلال اسمها فمن الواضح أنها تقوم بتثبيت الاتصال الذى تم إنشاؤة وربط المعلومات بالفورم الذى ستقوم من خلالة بعرض البيانات

إذن هذا هو مسار الاتصال بقاعدة بيانات يمكننا أن نقوم بالحصول على البيانات عن طريق سلوك نفس المسار باستخدام كود دون أن نقوم بربط كل مربع نص بالحقل المطلوب هل يمكن ذلك
مثال
نفترض أن لدينا قاعدة بيانات A وأن بها الجدول B وعدد من الحقول ba,bb,bc,bd وأنة أثناء عمل اتصال بقاعدة البيانات قام معالج الإتصال بعمل Dataset وقام بتسميتها مثلا CDataSet نستطيع أن نقوم بتجميع هذة المعلومات لإنشاء كود لإحضار البيانات التى فى الحقل ba وإظهارها فى TextBox داخل الفورم
أى أننا نريد احضار النص Text الموجود فى قاعدة البيانات A فى الجدول B فى الحقل ba وربط البيانات DataBindings بمربع النص TextBox وبما أن DataSet قام بإحضار ما يلزمنا فى العمل فإننا سنذهب إلية ولن نذهب إلى قاعدة البيانات
يمكننا ترتيب السطر السابق لنحصل على جملة مفيدة كالتالى
TextBox.DataBindings.Add
وAdd لأننا نريد إضافتة
ثم نريد عرض Text الموجود فى DataSet المسماة CDataSet وبالتحديد فى الجدول B الحقل ba
("Text", CDataSet, "B.ba")
فتكون الصيغة الكاملة
TextBox.DataBindings.Add("Text", CDataSet, "B.ba")
ويجب أ ن نعتبرها قاعدة ويمكنكم دائما استخدام هذة القاعدة لإنشاء الكود

خصائص Currency Manager
والمقصود بهذة الخصائص هو العمليات التى يمكننا تنفيذها
1-Bindings
لربط مجموعة من العناصر ليتم التحكم بها من خلال Currency Manager
2-Countr

لمعرفة عدد الصفوف المرتبطة مع Currency Manager
3-Current

لاستدعاء الصف المرتبط حاليا مع Currency Manager
4-List

لعرض قائمة تكون مرتبطة بقاعدة البيانات مثل DataViews
5-Position

للتعامل مع الصف الحالى اعتمادا على رقم هذا الصف داخل قاعدة البيانات
الوظائف التى يمكن تنفيذها من خلال Currency Manager
1- AddNew إضافة جديد
2- CancelCurrentEdit إلغاء التغييرات
3- EndCurrentEdit إنهاء وحفظ
4- Re fresh تحديث وإعادة تعبئة البيانات
5- RemoveAt إزالة
ولكى نفهم ما هو الفرق بين الخاصية والوظيفة فإننا سنقوم بعمل مثال بسيط جدا
مثال : الربط البسيط
الغرض من هذا المثال هو كيف تتعلم أن تقوم بابتكار الكود دون أن تظل تبحث عن كود لإنشاء برنامجك
الان نقوم بعمل ربط مباشر وبسيط للفورم بقاعدة البيانات دون أن نستخدم Binding Navigator
مشروع جديد يحتوى على 4 زر Button و4 TextBox وكذلك 4 Lable
قم بتسمية الأزرار كالتالى
(السجل الأول, السابق, التالى, السجل الأخير)
فى خصائص Lable قم بتسميتها فى Text إلى الإسم , اسم الأب , المدينة , تليفون المنزل أو كما تريد أن تختار من حقول قاعدة البيانات وقم بترتيب TextBox فى شكل مناسب
-كليك يمين على الفورم ثم اذهب إلى خصائص Properties ثم قم بالذهاب إلى DataBindings ومنها قم بالضغط على Text ثم قم بالضغط على زر مربع الإختيار الموجود بة الخيار non ثم اضغط على Add project Data Source
-يظهر لك الان معالج إعداد مصادر البيانات قم باختيار Database ثم Next
-قم باختيار New Connection ثم يظهر لك معالج الإتصال بقاعدة البيانات قم باضغط على Browse ثم قم باختيار قاعدة البيانات التى تريد الاتصال بها وهى طبعا Northwind
-قم بالموافقة على إضافة قاعدة البيانات إلى المشروع ثم قم بالموافقة على حفظ المشروع باسم NorthwindConnectionString ثم Next تظهر لك الان محتويات قاعدة البيانات
قمت باختيار الجدول المعتاد employees والأربعة حقول وهى Firest Name وSecond Name وCity وHome Phone
-كليك يمين على مربع النص الأول الخاص بالإسم واذهب إلى خصائصة ثم إلى Data Binding ثم Text وقم بفتح Other Data Sources ثم NorthwindData Set ثم Employeesثم قم بالضغط على First Name
قم بتجربة البرنامح الان يظهر لك الإسم فى مربع النص
نحن الان قمنا بربط مربع النص TextBox1
الكود
قم بكتابة الكود التالى فى الفورم

كود:
Private m_CurrencyManager As CurrencyManager
هذة العبارة اختيارية m_CurrencyManager ويمكنك وضع أى جملة أو كلمة أو حتى حرف بدلا منها واستخدامها فى المثال
وستجد أن هناك كود تم إنشاؤة تلقائيا وهو هذا

كود:
Me.EmployeesTableAdapter.Fill(Me.NorthwindDataSet. Employees)
قم بتعبئة ما قمنا باختيارة من خلال Data Adaptor وهو موجود فى
كود:
(Dataset.Table (نقوم الان بربط مربع النص TextBox2 بالحقل LastName فإذا قمنا بتطبيق القاعدة

كود:
TextBox.DataBindings.Add("Text", CDataSet, "B.ba")
فإننا نستطيع ببساطة أن نقوم بإنشاء الأكواد الخاصة بمربعات النصوص الثلاثة الباقية فتكون كالتالى
كود:
TextBox2.DataBindings.Add("Text", NorthwindDataSet, "Employees.LastName")
TextBox3.DataBindings.Add("Text", NorthwindDataSet, "Employees.City")
TextBox4.DataBindings.Add("Text", NorthwindDataSet, "Employees.HomePhone")
وسنقوم بوضع هذا الكود داخل الفورم
يمكنكم الان إزالة الرابط الذى يربط مربع النص الأول بقاعدة البيانات وذلك عن طريق الذهاب إلى خصائص TextBox1 ثم إلى DataBinding ومنة إلى Text واختيار Non ثم كتابة سطر الكود الخاص بة وهو كالتالى

كود:
TextBox1.DataBindings.Add("Text", NorthwindDataSet, "Employees.FirstName")
.ولكننا أضفنا هذا السطر فى بداية الفورم

كود:
Private m_CurrencyManager As CurrencyManager
فما هو تعريف CurrencyManager ؟
نقوم الان بوضع تعريف لة ويكون التعريف طبقا للقاعدة التالية

كود:
m_CurrencyManager = DirectCast(Me.BindingContext(DataSet, "Table"), CurrencyManager)
وعندما ننظر إلى المثال الذى نحن بصددة نجد أن DataSet هنا هى NorthwindDataSet ونجد أن الجدول Table هو Employees فيكون التعريف على النحو التالى

كود:
m_CurrencyManager = DirectCast(Me.BindingContext(NorthwindDataSet, "Employees"), CurrencyManager)
ويمكنكم القياس على ذلك
الان قم بوضع تعريف CurrencyManager داخل الفورم ثم قم بتجربة البرنامج الان ستجد أن مربعات النصوص الأربعة قد تم تعبئتها بالبيانات
نحتاج الان إلى أكواد للإزرار
-فى زر الأول

كود:
m_CurrencyManager.Position = 0
-فى زر السابق

كود:
m_CurrencyManager.Position -= 1
-فى زر التالى

كود:
m_CurrencyManager.Position += 1
-فى زر الأخير

كود:
m_CurrencyManager.Position = m_CurrencyManager.Count – 1
يمكنكم تجربة المثال السابق فهو مهم
ويفضل اختيار قاعدة بيانات أخرى أو على الأقل جدول اخر وأضعف الإيمان حقول أخرى
وهذا هو رابط للمشروع
http://www.zshare.net/download/35367836c21be1
ولكن ليس هذا هو كل شىء فيبدوا أن هناك عدد من الوظائف نحتاج إليها مثل الإضافة والإزالة والبحث

أنتهى درس اليوم ... ويتبع........
__________________



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




كم هي جميلة شبكتنا .. وكم هي كبيره بكم
فشبكة قحطان بكم ولكم
فلننهظ بها
بصدق وأمانه
وبلا تذمر


محمد المعمري غير متواجد حالياً