كيفية عمل فلترة لبيانات DataTable - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الأحد
2016-12-04
11:24 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

كيفية عمل فلترة لبيانات DataTable
كيفية عمل فلترة لبيانات DataTable

مقـــدمه
المقاله تشرح طريقة بسيطه لفلترة بيانات موجوده في جدول DataTable بحسب عمود معين في الجدول .
DataView Class
الطريقة مختصره جدا , حيث كل ما سنفعله هو استخدام الكلاس DataView , حيث يستخدم هذا الكلاس كفلتر , او بمعنى اخر يستخدم كطبقة وسطى توضع بين الجدول الذي يحتوي البيانات , والكنترول الذي تعرض فيه هذه البيانات , والكود التالي يوضح ما اريد قوله :
Filter Method
 
هذه الداله تقبل 3 معاملات :
1- table وهو الجدول الموجود به البيانات المراد فلترتها .
2- col_name وهو اسم العمود الذي تتم الفلتره بواسطته .
3- txt وهو النص الذي يفلتر به .

تقوم الداله بعمل فلتر DataView , وتعطيه الجدول table كمصدر للبيانات , ثم النقطه الأهم في الموضوع وهو الكويري , حيث يستخدم الكويري كما لو كنت تكتب في السيكوال , حيث جملة like في السيكوال تكون هكذا
select * from tabl_name where column_name like 'any text %'
وكلنا نعلم ان علامة % تستخدم لكي يرجع الكويري كل البيانات التي تبدأ القيم في العمود column_name بالقيمة any text , وبالتالي استخدمنا الجمله بدايه من like , بحيث نختار عمود معين اسمه col_name في الجدول table , ونأتي بكل البيانات التي بها العمود col_name تبدأ بالنص txt

وكمثال اذا كان لدينا جدول يحتوي على 3 اعمدة stu_id , stu_name , stu_class ونريد فلترة بياناته وفق نص يكتب في textBox فسنقوم باستخدام الداله ونمرر لها الجدول واسم العمود الذي نريد الفلتره بواستطه , والنص الموجود في التكست , كما يلي  
 
 
الكود السابق موضوع داخل حدث Text_changed لتكست بوكس , بحيث كلما ادخل المستخدم الى التكست , قامت الداله بالفلتره واظهار البيانات في ListBox , حيث معاملات الداله كالتالي : students هو الجدول , و stu_name هو اسم العمود , وهو يحتوي على اسماء الطلبه , و المعامل الثالث txt_fltr.Text وهو نص التكست بوكس .

هذه الطريقه البسيطه تستخدم كلها في Client Side حيت تعتمد على جلب البيانات كلها - كأسماء طلاب الفصل بالكامل - وتحميلها في جدول ثم تقوم الداله بفلتره الجدول دون ان تذهب الى قاعدة البيانات مرة اخرى , فالبيانات كلها في الذاكره , ولكن ما يظهر هو المفلتر منه فقط , وهناك طريقه اخرى تعتمد على التواصل المستمر مع قاعدة البيانات , حيث نص الكويري يترجم في Server Side بحيث كلما ادخل المستخدم نصاً جديداً الى التكست يذهب البرنامج الى قاعدة البيانات ويجلب فقط البيانات بعد عملية الفلتره , وهذه الطريقه سيتم شرحها بالتفصيل لاحقاً ان شاء الله , ولكل طريقه مميزاتها , فالأولى تتميز بالذهاب مرة واحده فقط الى قاعدة البيانات لجلب البيانات كلها دفعه واحده ثم تتم فلترتها داخل البرنامج كلما كانت هناك حاجة لعملية فلتره وهي جيده ومناسبة لتطبيقات الويب , بحيث تحمل البيانات مع تحميل الصفحه , وليست هناك حاجة للذهاب مره اخرى للسيرفر حيث يستغرق ذلك وقتاً , والطريقه الثانيه تتميز بالتوفير في الذاكره خصوصاً اذا كان حجم البيانات التي تتم عملية الفلتره عليها كبير , وهي مناسبه اكثر لتطبيقات سطح المكتب .
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-10-23 3:53 PM)
مشاهده: 2780 | تعليقات: 1 | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 1
1  
السلام عليكم و رحمة الله و بركاته،

شكرا جزيلا أخي على هذا المثال الذي أفادني.

إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz