23-12-17, 12:03 AM
(آخر تعديل لهذه المشاركة : 23-12-17, 12:06 AM {2} بواسطة عبدالله الدوسري.)
هذا الكود بعد التعديل :
ملاحظة أخي الكريم
الـ SqlCommand من صفاتة أنه يقوم بالتنفيذ على مستوى السجل الواحد فقط وركز على كلمة فقط إذا كان الأمر (INSERT أو UPDATE أو DELETE), ولا يقوم بتنفيذ أمر إدخال لجميع السجلات دفعة واحدة
المشكلة انك تقوم بعمل اللإتفاف (Loop) على داتا قريد فيو موجودة لديك وفي كل لفة أنت تعيد إضافة نفس البراميترات في أمر SqlCommand
في نهاية كل لفة يجب تنفيذ الأمر CmdInsert.ExecuteNonQuery لإرسال القيم في هذة اللفة (Loop)
وعند دخولك على اللفة (Loop) الثانية تقوم بعمل Parameters.Clear ثم ترجع وتضيف البراميترات مرة أخرى بقيم أخرة وفي نهاية اللفة تنفذ CmdInsert.ExecuteNonQuery
أرجوا تكون وصلت الفكرة
هذة القاعدة تسري على INSERT و UPDATE و DELETE : كلهم يتم تنفيذهم على مستوى السجل الواحد
بمعنى لو عندك 100 سجل لإضافتهم لقاعدة البيانات : يجب أن تنفذ 100 أمر INSERT
بمعنى لو عندك 100 سجل لتحديثهم لقاعدة البيانات : يجب أن تنفذ 100 أمر UPDATE
بمعنى لو عندك 100 سجل لحذفهم لقاعدة البيانات : يجب أن تنفذ 100 أمر DELETE
ما عدى SELECT : أمر واحد يجلب الكل
ملاحظة أخي الكريم
الـ SqlCommand من صفاتة أنه يقوم بالتنفيذ على مستوى السجل الواحد فقط وركز على كلمة فقط إذا كان الأمر (INSERT أو UPDATE أو DELETE), ولا يقوم بتنفيذ أمر إدخال لجميع السجلات دفعة واحدة
المشكلة انك تقوم بعمل اللإتفاف (Loop) على داتا قريد فيو موجودة لديك وفي كل لفة أنت تعيد إضافة نفس البراميترات في أمر SqlCommand
في نهاية كل لفة يجب تنفيذ الأمر CmdInsert.ExecuteNonQuery لإرسال القيم في هذة اللفة (Loop)
وعند دخولك على اللفة (Loop) الثانية تقوم بعمل Parameters.Clear ثم ترجع وتضيف البراميترات مرة أخرى بقيم أخرة وفي نهاية اللفة تنفذ CmdInsert.ExecuteNonQuery
أرجوا تكون وصلت الفكرة
هذة القاعدة تسري على INSERT و UPDATE و DELETE : كلهم يتم تنفيذهم على مستوى السجل الواحد
بمعنى لو عندك 100 سجل لإضافتهم لقاعدة البيانات : يجب أن تنفذ 100 أمر INSERT
بمعنى لو عندك 100 سجل لتحديثهم لقاعدة البيانات : يجب أن تنفذ 100 أمر UPDATE
بمعنى لو عندك 100 سجل لحذفهم لقاعدة البيانات : يجب أن تنفذ 100 أمر DELETE
ما عدى SELECT : أمر واحد يجلب الكل
