منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الـDataTable تحت المجهر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله
يقول الله تعالي في كتابه الكريم (قَالُوا سُبْحَانَكَ لَا عِلْمَ لَنَا إِلَّا مَا عَلَّمْتَنَا ۖ إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ) صدق الله العظيم
اليوم انشر مشاركة سابقة لل اخ ابوبكر سويدان عمله بال vb 
اليوم، سأكتب عن الـDataTable، وأتمنى لكم الفائدة..
الكلاس DataTable
ويمثل جدولاً واحداً ضمن الـDataSet. وكل جدول لا بد أن تتوفر فيه الكلاسات: DataColumn وDataRow، فللجدول حقول (أعمدة Columns) وسجلات (صفوف Rows). وهذا الكلاس يتبع مباشرة لفضاء الأسماء System.Data.
إنشاء جدول Creating a DataTable
هذا الكلاس يتبع مباشرة لفضاء الأسماء System.Data، ولإنشاء جدول نقوم بتعريف كائن DataTable، وبشكل اختياري يمكننا منحه اسماً:
PHP كود :
DataTable t = new DataTable(); 

في السطر السابق تم تعريف كائن يمثل جدولاً دون أن نسميه، وفي السطر التالي، نقوم بتعريف كائن يمثل جدولاً باسم Customers:
PHP كود :
           DataTable customer = new DataTable("customers"); 

  •  إذا لم نحدد اسماً للجدول، يقوم ADO.NET بتسميته Table1، والجدول الذي يليه Table2 وهكذا.
  •  بعد إنشاء كائن الجدول، يمكننا تعديل قيمة الخاصية TableName لإعطائه اسماً أو تعديله، كما يمكننا التعامل مع بقية الخصائص والوظائف والأحداث.

إضافة DataTable إلى DatatSet

يضاف الجدول DataTable المنشأ حديثاً إلى الـDataSet بالصورة التالية:
PHP كود :
DataSet EmployeesDataset = new DataSet("Employees DataSet");
 
           DataTable personalinfotable = new DataTable();
 
           EmployeesDataset.Tables.Add(personalinfotable); 

وذلك من خلال الوظيفة Add التابعة للخاصية Tables التابعة للـDataSet.

أهم خصائص DataTable:
الخاصية TableName: ومن خلالها يمكن ضبط / استرجاع اسم الـDataTable.


PHP كود :
DataTable firsttable = new DataTable();
 
           MessageBox.Show(firsttable.TableName);
 
           firsttable.TableName "Nationalities";
 
           MessageBox.Show(firsttable.TableName); 
الخاصية DataSet: ومن خلالها يمكن استرجاع الـDataSet التي يتبعها هذا الـDataTable.

PHP كود :
 DataSet employeesdataset = new DataSet("Employees DataSet");
 
           DataTable personalinfotable = new DataTable("personal info");
 
           employeesdataset.Tables.Add(personalinfotable);
 
           MessageBox.Show(personalinfotable.DataSet.DataSetName); 
الخاصية PrimaryKey: ومن خلالها يمكن ضبط / استرجاع مصفوفة من الأعمدة أو الحقول التي تعمل كمفاتيح أساسية للـDataTable. وسأشرح عنها عند الحديث عن DataColumn.

الخاصية Rows: ومن خلالها يمكن استرجاع تجمع الصفوف التي تتبع هذا الـDataTable. وسأشرح عنها عند الحديث عن DataRow.

أهم وظائف DataTable:

الوظيفة Clear: وتقوم بمسح محتويات الجدول من البيانات فقط، ولا تحذف تركيبته.

PHP كود :
           personalinfotable.Clear(); 
الوظيفة Clone: وتقوم بنسخ تركيبة الجدول دون البيانات.

PHP كود :
DataTable personalinfotable = new DataTable();
 
           personalinfotable.TableName "original table";
 
           DataTable clonedtable = new DataTable();
 
           clonedtable personalinfotable.Clone();
 
           MessageBox.Show(clonedtable.TableName); 
الوظيفة Copy: وتقوم بنسخ تركيبة ومحتويات الجدول إلى جدول آخر .

PHP كود :
DataTable personalinfotable = new DataTable();
 
           personalinfotable.TableName "original table";
 
           DataTable copiedtable = new DataTable();
 
           copiedtable personalinfotable.Clone();
 
           MessageBox.Show(copiedtable.TableName); 
الوظيفة Reset: وتقوم بإعادة ضبط الجدول إلى حالته القديمة. وحذف كافة البيانات المخزنة فيه، بالإضافة إلى الفهارس والعلاقات والأعمدة.

PHP كود :
           personalinfotable.Reset(); 
الوظيفة Select: وتقوم باسترجاع مصفوفة تمثل كافة الـDataRows بالجدول.

PHP كود :
DataSet CompanyDataSet = new DataSet("Company");
 
           DataTable TheSupplierTable CompanyDataSet.Tables["Suppliers"];
 
           DataRow[] SelectedRows TheSupplierTable.Select();