سؤال

أنا غير قادر على استرداد أحدث المعرف المدرج من بلدي SQL Server 2000 DB باستخدام مجموعة بيانات مكتوبة في ASP.NET

لقد قمت بإنشاء جهاز التزيين وأقلت "تحديث DataTable" و "إنشاء إدراج وتحديث وتحديث عبارات". يولد هذا تلقائيا أساليب التعبئة والآتصار، وإدراج وتحديث وحدد و حذف البيانات.

لقد حاولت كل حل ممكن في هذا الموضوع

http://forums.asp.net/t/90365.aspx.

لكنني ما زلت لا تنجح، فهو يعود دائما 1 (= عدد الصفوف المتأثرة). لا أريد إنشاء طريقة إدراج منفصلة حيث يناسب InsertCommand المجهول تلقائيا احتياجاتي تماما.

كما هو مقترح في الخيط أعلاه، حاولت تحديث بناء جملة InsertCommand SQL SQL لإضافة تحديد Scopy_imentity () أو شيء مشابه، لقد حاولت إضافة معلمة من نوع إعادة التردد، ولكن كل ما أحصل عليه هو عدد الصفوف المتأثرة.

هل لدى أي شخص آخر يأخذ على هذا؟ شكرا مقدما! stijn.

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

المحلول

لقد نجحت في وسيلة للحصول على معرف تدريجي بعد إدراج باستخدام محول الجدول الخاص بي.

نهجي مختلف قليلا، وأنا أستخدم إجراء متجر لجعل الإدراج، لذلك يكون الأمر الإدراج الخاص بي جميع القيم ولكن المعرف، قمت بإرجاع SP إرجاع المعرف فقط الاتصال: Set @ ID = Scope_Indity () ثم سوف يرتكب tran والخط الماضي العائد @

ثم بحثت عن معلمات محول الجدول الخاص بي ل InsertCommand وتعيين returnvalue إلى عمود المعرف الإضافي للجدول، لذلك عند تنفيذها تلقائيا وضع قيمة الإرجاع على حقل المعرف.

نأمل أن تكون هذه المساعدة

نصائح أخرى

قررت الاستسلام، لا أستطيع أن أضيع المزيد من الوقت في هذا. يمكنني استخدام عبارة INSERT بعد ذلك، أفعل استعلام SELECT MAX (ID) للحصول على معرف إدراج

إذا كان يجب أن يكون لدى أي شخص حل، سأكون سعيدا لقراءته هنا

شكرا Stijn.

تحتاج إلى معرفة محول جدول الجدول الخاص بك لتحديث جدول البيانات بعد تحديث / إدراج عملية. هذه هي الطريقة التي يمكنك القيام بذلك.

  1. افتح خصائص TableDapter -> Default Select Query -> خيارات ADSNACD. وبعد والتحقق من خيار تحديث جدول البيانات. وبعد احفظ المحول الآن. الآن عند استدعاء التحديث على محول الجدول، سيتم تحديث جدول البيانات [تحديث] بعد عملية التحديث / الإدراج وسيعكس أحدث القيم من جدول قاعدة البيانات. إذا تم تعيين المفتاح الأساسي أو أي Coloumn على الزيادة التلقائية، فسيحتوي جدول البيانات على أحدث التحديث الأخير.

  2. يمكنك الآن الاتصال بالتحديث باسم TableAdapterobj.update (ds.datatable)؛

  3. اقرأ أحدث القيم من DataTable (ds.datatable) coloumns وتعيين قيم المعنية في جدول الطفل قبل التحديث / الإدراج. وبعد هذا سيعمل بالضبط الطريقة التي تريدها.

النص البديل http://ruchitsurati.net/files/tds1.png.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top