16-05-20, 08:48 AM
من الواضح أنك تتعامل مع النسخة الأصل للـ DataSet
وإذا أردت أن تعدل على سجل فإنك تتعامل مع نفس الـ DataSet
إذا قمت بعمل DataSet.RejectChanges فهذا يعني إلغاء كل التغييرات على كامل الـ DataSet حتى السجلات السابقة سيتم إلغاء التغييرات التي تمت عليها. وليس هذا الجدول فقط , بل سيتم إغاء كل التغييرات على جميع الجداول الموجودة في هذة الـ DataSet
حتى لو قمت بإستخدام DataTable.RejectChanges على الجدول سيتم إغاء كل التغييرات على جميع السجلات الموجودة في هذة الجدول.
أنت تحتاج إلى DataRow.RejectChanges هذا الآخير سيقوم بإلغاء التغييرات فقط على مستوى السجل فقط.
الأفضل أنه عند فتح نافذة التعديل تأخذ نسخة من السجل والأفضل من ذلك جلبة مرة أخرى من قاعدة البيانات في ( جدول جديد أو في داتا ست جديدة ) فقط مخصوص لهذا السجل
إذا تم التعديل وتم الحفظ بنجاح تقوم بإعادة جلب السجل للنافذة الأم التي كانت تعرض السجل سابقاً لتحديث بياناته ( أو مباشرتاً من نافذة التعديل قم بإرجاع السجل للنافذة الأم لتحديث بياناتة على الشاشة ) ولا تنسى عمل ( DataRow.AcceptChanges ) فقط للسجل الأصل في النافذة الأم أو الداتا ست الأصل
وإذا لم يتم التعديل لأي سبب كان ( بكل بساطة أغلق النافذة ) لأن التعديلات تمت على سجل منسوخ من الأصل أو تم جلبة من قاعدة البيانات وليس السجل الموجود في النافذة الأم أو الداتاست الأصل التي تعمل عليها )
وإذا أردت أن تعدل على سجل فإنك تتعامل مع نفس الـ DataSet
إذا قمت بعمل DataSet.RejectChanges فهذا يعني إلغاء كل التغييرات على كامل الـ DataSet حتى السجلات السابقة سيتم إلغاء التغييرات التي تمت عليها. وليس هذا الجدول فقط , بل سيتم إغاء كل التغييرات على جميع الجداول الموجودة في هذة الـ DataSet
حتى لو قمت بإستخدام DataTable.RejectChanges على الجدول سيتم إغاء كل التغييرات على جميع السجلات الموجودة في هذة الجدول.
أنت تحتاج إلى DataRow.RejectChanges هذا الآخير سيقوم بإلغاء التغييرات فقط على مستوى السجل فقط.
الأفضل أنه عند فتح نافذة التعديل تأخذ نسخة من السجل والأفضل من ذلك جلبة مرة أخرى من قاعدة البيانات في ( جدول جديد أو في داتا ست جديدة ) فقط مخصوص لهذا السجل
إذا تم التعديل وتم الحفظ بنجاح تقوم بإعادة جلب السجل للنافذة الأم التي كانت تعرض السجل سابقاً لتحديث بياناته ( أو مباشرتاً من نافذة التعديل قم بإرجاع السجل للنافذة الأم لتحديث بياناتة على الشاشة ) ولا تنسى عمل ( DataRow.AcceptChanges ) فقط للسجل الأصل في النافذة الأم أو الداتا ست الأصل
وإذا لم يتم التعديل لأي سبب كان ( بكل بساطة أغلق النافذة ) لأن التعديلات تمت على سجل منسوخ من الأصل أو تم جلبة من قاعدة البيانات وليس السجل الموجود في النافذة الأم أو الداتاست الأصل التي تعمل عليها )
