السلام عليكم ورحمة الله وبركاته
أخي أبو ليلى كلامك جميل وترفع له القبعة،
أحببت أن أضيف فكرة على حالة الصف في الـ Datagrid يمكننا إضافة عامود غير منضم يمثل حالة الصف، ومن خلال هذا العامود نستطيع رصد طبيعة المتغيرات التي ستطرأ على الصف (التعديل - الإضافة - الحذف ) وسوف نرمز إليها بقيم معينة، فعند إضافة سجلات جديدة إلى الـ Datagrid سوف يسجل تلقائيا بناء لشروط أو معايير معينة فكل قيمة في عامود الحالة تدل على الحالة الحالية لكل صف على حدى، فإذا كانت القيمة الموجودة في عامود الحالة تدل على سجل جديد سوف يتم إضافته كسجل جديد إلى قاعدة البيانات، وإذا كانت القيمة أو القيم الموجودة في صف أو أكثر من صف تدل على سجل موجود مسبقا وطرأ عليه تغيير ما (معدل أو خضع للتعيدل) سوف يتم التعاطي معه على أنه سجل موجود مسبقا في قاعدة البيانات وسف يتم تحديثه وهكذا دواليك، ونسحب هذا الكلام أيضا على عملية الحذف.
سوف نستخدم الـ Loop ونضمنها جملة من الشروط، وهذه الشروط سوف نحدد من خلالها طبيعة العملية التي ستنفذ باتجاه قاعدة البيانات بناء للقيم الموجودة في عامود الحالة ونستطيع أن نعبر عنها بالمعايير التي سنستخدمها في جملة الشرط، وبالتالي إذا كانت القيمة في عامود الحالة هي (أ) سوف ينفذ عملية إضافة سجل جديد، وإذا كانت (ب) سوف ينفذ عملية تحديث لسجل، وإذا كانت (ج) سوف ينفذ عملية حذف.
بمعنى آخر نستطيع بناء جملة Loop يتخللها جملة من الشروط تتعاطى مع متغير أو أكثر قد يطرأ على Datagrid وبالتالي إذا تحقق شرط واحد سوف ينفذ عملية واحدة، وإذا تحقق أكثر من شرط سوف ينفذ أكثر من عملية باتجاه قاعدة البيانات مهما كان نوعها وفي نفس الوقت.
كما أنصح بوضع كل عملية (إضافة - تعديل - حذف) في دالة مستقلة ثم إنشاء Thread لكل دالة على حدى وتنفيذها من خلال الـ Thread وذلك من أجل رفع مستوى أداء العملية، واستخدام SqlTransaction لحماية العملية من أي خطر خارجي أو داخلي قد يؤدي إلى تلف أو فشل العملية.
ويعطيكم العافية
أخي أبو ليلى كلامك جميل وترفع له القبعة،
أحببت أن أضيف فكرة على حالة الصف في الـ Datagrid يمكننا إضافة عامود غير منضم يمثل حالة الصف، ومن خلال هذا العامود نستطيع رصد طبيعة المتغيرات التي ستطرأ على الصف (التعديل - الإضافة - الحذف ) وسوف نرمز إليها بقيم معينة، فعند إضافة سجلات جديدة إلى الـ Datagrid سوف يسجل تلقائيا بناء لشروط أو معايير معينة فكل قيمة في عامود الحالة تدل على الحالة الحالية لكل صف على حدى، فإذا كانت القيمة الموجودة في عامود الحالة تدل على سجل جديد سوف يتم إضافته كسجل جديد إلى قاعدة البيانات، وإذا كانت القيمة أو القيم الموجودة في صف أو أكثر من صف تدل على سجل موجود مسبقا وطرأ عليه تغيير ما (معدل أو خضع للتعيدل) سوف يتم التعاطي معه على أنه سجل موجود مسبقا في قاعدة البيانات وسف يتم تحديثه وهكذا دواليك، ونسحب هذا الكلام أيضا على عملية الحذف.
سوف نستخدم الـ Loop ونضمنها جملة من الشروط، وهذه الشروط سوف نحدد من خلالها طبيعة العملية التي ستنفذ باتجاه قاعدة البيانات بناء للقيم الموجودة في عامود الحالة ونستطيع أن نعبر عنها بالمعايير التي سنستخدمها في جملة الشرط، وبالتالي إذا كانت القيمة في عامود الحالة هي (أ) سوف ينفذ عملية إضافة سجل جديد، وإذا كانت (ب) سوف ينفذ عملية تحديث لسجل، وإذا كانت (ج) سوف ينفذ عملية حذف.
بمعنى آخر نستطيع بناء جملة Loop يتخللها جملة من الشروط تتعاطى مع متغير أو أكثر قد يطرأ على Datagrid وبالتالي إذا تحقق شرط واحد سوف ينفذ عملية واحدة، وإذا تحقق أكثر من شرط سوف ينفذ أكثر من عملية باتجاه قاعدة البيانات مهما كان نوعها وفي نفس الوقت.
كما أنصح بوضع كل عملية (إضافة - تعديل - حذف) في دالة مستقلة ثم إنشاء Thread لكل دالة على حدى وتنفيذها من خلال الـ Thread وذلك من أجل رفع مستوى أداء العملية، واستخدام SqlTransaction لحماية العملية من أي خطر خارجي أو داخلي قد يؤدي إلى تلف أو فشل العملية.
ويعطيكم العافية




بس عنده هواية التنكيد ؟؟