سؤال

أحاول إنشاء مجموعة سجلات ADO برمجيًا داخل .NET. سيتم نقل هذا إلى الرمز القديم الحالي في VB6 والذي يتوقع بالفعل مجموعة سجلات ADO ، لا أرغب في تغيير الكود الحالي.

لقد نجحت في تحديد الحقول ضمن مجموعة سجلات جديدة

ADODB.Recordset rs = new Recordset();
            rs.Fields.Append("Height", DataTypeEnum.adInteger, 4, FieldAttributeEnum.adFldMayBeNull, null);

داخل VB6 يمكنني إضافة سجلات بعد الاتصال على مجموعة السجلات بدون معلمات:

rs.Open

عندما أحاول الاتصال بـ AddNew مع رمز .NET ، فإنه يخبرني أن مجموعة السجلات يجب أن تكون مفتوحة ، ولا يمكنني الاتصال بـ Open لأنها تتوقع المعلمات التالية:

void Open(object Source, object ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, int Options);

لكنني أحاول تحميل مجموعة السجل برمجياً وليس لدي أي اتصال نشط أو مصدر بيانات آخر.

ماذا ينقصني؟ هل هناك طريقة أفضل؟

هل كانت مفيدة؟

المحلول

هذه المعلمات كلها اختيارية في Adodb.RecordSet.Open طريقة. حاول تمرير القيم الافتراضية بشكل صريح كما هو محدد في توثيق. هناك معلمة واحدة ، Source, ، مع عدم وجود افتراضي صريح مدرج. أتصور أن الافتراضي هو Nothing. تعديل لقد خمنت خطأ ، يبدو أنه كذلك System.Type.Missing

لذلك الحل هو:

rs.Open (System.Type.Missing, System.Type.Missing, _
  adOpenUnspecified, adLockUnspecified, -1)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top