المتابعون للمدونة

الخميس، 28 سبتمبر 2017

خصائص الفئة DataSet


خصائص الفئة DataSet: 

 اسم مجموعة البيانات DataSetName:
تحدد اسم مجموعة البيانات، ليتم استخدامه كاسم لعنصر الوثيقة Document Element في كود XML عند حفظ مجموعة البيانات. 

 نطاق الاسم Namespace:
تحدد اسم النطاق الذي سيتم تحته حفظ مجموعة البيانات في كود XML. 

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

ملحوظة:
عند استخدام الوسيلتين ReadXml و ReadXmlSchema لتحميل البيانات أو المخطط في مجموعة البيانات، فإنهما تبحثان في ملف XML عن نطاق الاسم الموضح في الخاصية DataSetName، ومجوعة البيانات المميزة بالبادئة الموضحة في الخاصية Prefix، فإذا لم تعثر في الملف عن مجموعة بيانات تحقق هذين الشرطين، لا يتم تحميل أي شيء من الملف.

ويريك المشروع DataSetSample مثالا على استخدام هذه الخصائص.. ستجد هذا الكود مثلا في حدث تحميل النموذج:
Ds.Namespace = "My Project"
Ds.Prefix = "Authors-Books"
Ds.DataSetName = "DsBooks"
ويظهر تأثير هذه الخصائص عند ضغط الزر "حفظ المخطط في ملف"، حيث ستجد أسماء هذه الخصائص مستخدمة في تعريف مخطط مجموعة في الملف C:\DsBooksSchema.xml. 

 حساسة لحالة الأحرف CaseSensitive:
إذا جعلت قيمة هذه الخاصية True، فستصير عمليات المقارنة والترشيح Filtering حساسة لحالة الأحرف.. هذا يؤثر في نتائج الوسيلة DataTable.Select والخاصية DataColumn.Expression.. والقيمة الافتراضية لهذه الخاصية هي False.
لاحظ أن تغيير قيمة هذه الخاصية، سيغير تلقائيا قيمة الخاصية CaseSensitive الخاصة بكل جدول في مجموعة البيانات. 

 المحل Locale:
تقرأ أو تغير كائن معلومات الثقافة CultureInfo، الذي يحتوي على تفاصيل اللغة التي تستخدم لمقارنة وترتيب النصوص الموجودة في جداول مجموعة البيانات.
لاحظ أن تغيير قيمة هذه الخاصية، سيغير تلقائيا قيمة الخاصية Local الخاصة بكل جدول في مجموعة البيانات. 

 فرض القيود EnforceConstraints:
إذا جعلت قيمة هذه الخاصية True (وهي القيمة الافتراضية)، فسيتم التأكد من صحة القيود المفروضة على الجداول عند إجراء عمليات التحديث والإدراج والحذف. 

* توجد بها أخطاء HasErrors:
تعيد True إذا كان أي من جداول مجموعة البيانات قد حدثت به أخطاء أثناء عملية التحديث.. ويمكنك فحص الخاصية HasErrors الخاصة بكل جدول لمعرفة الجدول الذي تسبب في الخطأ. 

* الجداول Tables:
تعيد مجموعة جداول البيانات DataTableCollection، التي تحتوي على كائنات الجداول DataTable Objects الموجودة في مجموعة البيانات.. وسنتعرف على هذه المجموعة بالتفصيل في الفصل التالي.
ما يعنيا هنا هو أنك تستطيع تحرير هذه المجموعة من خلال نافذة الخصائص.. فلو ضغطت زر الانتقال الموجود في خانة قيمة هذه الخاصية، فستظهر لك نافذة محرر مجموعة الجداول Table Collection Editor.. في هذه النافذة يمكنك إضافة جداول جديد بضغط الزر Add، ثم استخدام الخصائص الموجودة في القسم الأيمن من النافذة لتغيير اسم هذا الجدول وطريقة عرضه والأعمدة الموجودة به.. وسنتعرف على هذه الخصائص بالتفصيل في الفصل اللاحق.  

* العلاقات Relations:
تعيد مجموعة علاقات البيانات DataRelationCollection، التي تحتوي على كائنات العلاقات DataRelation Objects الموجودة في مجموعة البيانات.. وسنتعرف على هذه المجموعة بالتفصيل في الفصل التالي.
لاحظ أن ملء مجموعة البيانات بالجداول والسجلات لا يضيف العلاقات بين الجداول تلقائيا إلى مجموعة العلاقات Relations.. لهذا عليك أن تضيف هذه العلاقات بنفسك إلى مجموعة العلاقات، سواء من الكود أو باستخدام نافذة المخطط كما سنرى لاحقا.. كما يمكنك إضافة العلاقات بطريقة مرئية من خلال نافذة الخصائص.. فلو ضغطت زر الانتقال الموجود في خانة قيمة هذه الخاصية، فستظهر لك نافذة محرر مجموعة العلاقات
Relations Collection Editor.. اضغط الزر Add لإضافة علاقة جديدة.. ستظهر نافذة إنشاء العلاقة لتسمح لك بتحديد الجدولين والأعمدة المشتركة في العلاقة كما تعلمنا من قبل.. وبعد أن تضغط OK لإغلاق نافذة العلاقة، ستظهر العلاقة في القائمة اليسرى، وتظهر خصائصها في القائمة اليمنى.. ولو أردت تغيير عناصر العلاقة ، فاضغط الزر Edit لعرض نافذة العلاقة مرة أخرى. 

* مدير العرض الافتراضي DefaultViewManager:
تعيد كائن مدير عرض البيانات DataViewManager Object الذي يتحكم في البيانات التي تعرضها مجموعة البيانات.. وسنتعرف على هذا الكائن بالتفصيل لاحقا. 

* الخصائص الإضافية ExtendedProperties:
تعيد مجموعة الخصائص PropertyCollection التي تحتوي على الخصائص الإضافية التي تضيفها إلى مجموعة البيانات.
والمجموعة PropertyCollection ترث الجدول المختلط Hashtable، ما يتيح لك إضافة اسم الخاصية كمفتاح Key، والقيمة التي تريد حفظها فيها كقيمة Value.
والمثال التالي يضيف إلى مجموعة البيانات خاصية إضافية تحتفظ باسم البرنامج الخاص بك، ثم يعرض قيمة هذه الخاصية في رسالة:
Ds.ExtendedProperties.Add("ProgName", "MyProg")
MsgBox(Ds.ExtendedProperties("ProgName")) 

 تنسيق التراسل RemotingFormat:
تحدد التنسيق الذي سيتم به إرسال البيانات من جهاز إلى آخر، عندما تتعامل مجموعة البيانات مع برنامج يستخدم التحكم عن بعد Remoting، وهي تأخذ إحدى قيمتي المرقم SerializationFormat التاليتين: 

Xml
يتم إرسال البيانات في صورة نصوص XML.. هذه هي القيمة الافتراضية.
Binary
يتم إرسال البيانات في صورة أرقام ثنائية Binary.. هذا متاح فقط بدءا من الإصدار الثاني لإطار العمل.

لاحظ أن تغيير قيمة هذه الخاصية، يغير قيمة الخاصية RemotingFormat الخاصة بكل جدول في مجموعة البيانات. 

 طريقة سلسلة المخطط SchemaSerializationMode:
تحدد كيف سيتم التعامل مع مخطط البيانات عند سلسلة مجموعة البيانات محددة النوع Typed DataSet.. والسَلسلة Serialization: هي تحويل محتويات كائن موجود في الذاكرة إلى بيانات يمكن حفظها في ملف أو إرسالها عبر الشبكة.. هذا يتيح لك الاحتفاظ بحالة الكائن بعد إغلاق البرنامج لاستعادتها مرة أخرى بعد إعادة تشغيله، أو إرسالها إلى جهاز آخر للتحكم في هذا الكائن عن بعد Remoting.
وتأخذ هذه الخاصية إحدى قيمتي المرقم SchemaSerializationMode: 

IncludeSchema
إضافة مخطط البيانات ضمن عملية السلسلة.. هذه هي القيمة الافتراضية.
ExcludeSchema
عدم إضافة مخطط البيانات ضمن عملية السلسلة، مع الاكتفاء بسلسلة خصائص مجموعة البيانات التي تغيرت قيمها عن القيمة الافتراضية، وبهذا يتم تقليل حجم البيانات المسلسلة بشكل كبير.. لاحظ أن هذه القيمة لا تصلح إذا كانت مجموعة البيانات عادية (غير محددة النوع Un-typed DataSet).

وسنتعرف على مجموعة البيانات محددة النوع لاحقا في هذا الفصل.
من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

 

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر