فئة مجموعة
معاملات سيكويل
SqlParameterCollection
Class
هذه
الفئة ترث الفئة DbParameterCollection، وهي لا تختلف عنها كثيرا إلا في أن عناصرها من نوع الفئة SqlParameter ، التي سنتعرف عليها بعد قليل.
كما
أن للوسيلة Add
الخاصة بهذه الفئة العديد من الصيغ التي من المفيد أن نتعرف عليها:
إضافة Add:
تضيف معاملا إلى مجموعة المعاملات، ولها الصيغ
التالية:
1- الصيغة الأولى تستقبل معاملا واحدا من النوع SqlParameter.
2- الصيغة الثانية
تستقبل نصا يمثل اسم المعامل وإحدى قيم المرقم SqlDbType التي توضح نوع المعامل.
3- الصيغة الثالثة تزيد على الصيغة السابقة بمعامل ثالث من النوع Integer، يستقبل حجم البيانات التي ستوضع في المعامل.
4- الصيغة الرابعة تزيد على الصيغة السابقة بمعامل، يستقبل اسم
عمود في مجموعة البيانات DataSet ليربط المعامل به.
5- وهناك صيغة خامسة لكنها لم يعد مفضلا استخدامها، تستقبل اسم
المعامل، وكائنا Object
يحمل قيمته، وذلك بسبب التعارض بينها وبين الصيغة الثانية، لهذا تم إضافة وسيلة
جديدة اسمها AddWithValue
كبديل لهذه الصيغة.
إضافة بالقيمة AddWithValue:
تضيف معاملا إلى المجموعة، وهي تستقبل اسم
المعامل، وكائنا Object
يحمل قيمته.. وتعيد هذه الوسيلة مرجعا إلى المعامل الذي تم إنشاؤه.
لاحظ أنك تستطيع أن ترسل إلى المعامل الثاني
لهذه الوسيلة قارئ بيانات DataReader أو جدول بيانات DataTable، لتتم قراءة كل الصفوف الموجودة فيهما ووضعها في المعامل.. هذا
مفيد إذا كنت تتعامل مع إجراء مخزن يستقبل معاملا جدولا Table-Valued
Parameter، وتريد أن ترسل إليه
جدولا كاملا.. وستجد مثالا على هذا في المشروع TableValuedParameters.. في هذا المشروع نقرأ جدول المؤلفين في قارئ بيانات من النوع OledbDataReader، ثم نرسله كمعامل ثان إلى الوسيلة AddWithValue لاستخدامه كمعامل للإجراء المخزن InsertAuthors، وبهذا نستطيع إضافة المؤلفين من قاعدة بيانات آكسيس إلى قاعدة
بيانات سيكويل سيرفر.
لاحظ أن قارئ البيانات يجب أن يظل مفتوحا هو
والاتصال الذي يستنخدمه، لأن الوسيلة AddWithValue لا تنسخ السجلات من قارئ البيانات فعليا، ولا يتم نسخ هذه السجلات
إلا عند استدعاء الوسيلة ExecuteNonQuery الخاصة بكائن الأمر الذي ينفذ الإجراء المخزن ويرسل إله المعامل
الجدول.
من
كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.