الفرق بين الفئتين DataReader و DataSet

05 أبريل 2017     358 مشاهدة    0 تعليق
تم النشر في #ADO.NET  # DataSet  # DataReader 

الكثير من تطبيقاتنا تتطلب التعامل أنواع مختلفة من مصادر البيانات, سوى كانت ملفات إكسل, أكسس, SQL Server أو غيرها .. قدمت تقنية الدوت نت لنا مجموعة غنية من الواجهات للتعامل مع البيانات تحت إسم ADO.NET وهي إمتداد لتقنية الـ ActiveX Data Object (ADO).

هنالك الكثير من المبرمجين الذين تعاملوا مع بعض قواعد البيانات مثل الـ SQL Server أو الـ MySQL, لكن لازلت أرى أن هنالك الكثير متخبط نوعاً ما, أو عنده سوء فهم بين الفئات الموجودة في تقنية الـ ADO.NET, وخصوصاً الفئتين DataReader و DataSet.

سأحاول في هذه المقال البسيط توضيح الفرق الأساسين بين تلك الفئتين, وإزالة الشك الموجود عن البعض بخصوص التعامل معهما.

DataReader

الـ DataReader أو ما يسمى قارىء البيانات هو فئة تستخدم نمط الإتصال الموجة Connection Oriented  و له الخواص التالية:

  1. يتطلب عند إستخدامك هذه الفئة أن يكون الإتصال بين تطبيقك وقاعدة البيانات مفتوحاً وذلك بإستخدام الإجراء Open().
  2. يستخدم قارىء البيانات لقراءة البيانات فقط, فلا يمكن تعديل البيانات بواسطة هذه الفئة. كما أنه يقوم بالقراءة التسلسلية من أول صف إلى آخر صف Forward-Only فهو لايمكنة القراءة بطريقة عكسية أو عشوائية.
  3. إستخدام الـ قارىء البيانات يسرع من إداء البرنامج لأنه يقوم بقراء صف واحد كل مره ويقوم بتخزينة في الذاكرة.

DataSet

الـ DataSet أو ما يسمى مجمع البيانات هي فئة تستخدم نمط الإتصال المنفصل Connectionless  و له الخواص التالية:

  1. لا يتطلب هذا النوع أن تقوم بفتح الإتصال بين برنامج وقاعدة البيانات بإستخدام الإجراء Open().
  2. يمكن لمجمع البيانات من حفظ البيانات من جدول أو أكثر في الذاكرة. كما يمكن تعديل البيانات داخل الـ DataSet. ولكن تظل تلك التغيرات في الذاكرة, إلا إذا تم إستخدام الفئة DataAdapter.
  3. مجمع البيانات يمثل تمثيل كاملا للبيانات فيمكنه الإحتفاظ بالجداول المرتبطه والعلاقات والقيود .. إلخ.

تعرفنا على خواص كل فئة من الفئات السابقة, فأرجو أن اللبس الموجود لدى البعض تم توضيحه بالفروقات أعلاه.

وفي الختام نصيحتي إستخدم الفئة المناسبة في المكان المناسب, وكما هو معروف لكل فئه سلبيات وإيجابيات, لذلك عليك توخي الحذر خصوصاً عند إستخدام الـ DataSet وعدم الإفراط في كمية حجم البيانات المضافة لها, لأن كل شيء محسوب على الذاكرة وحجمها.

تويتر فيسبوك قوقل + لينكد إن


اكتب تعليقك