سؤال

ولدي مجموعة بيانات مكتوب، وحيث أدعو TableAdapter.Update(DataRow)، وSQL أعدم يتضمن تحديثا للعمود المفتاح الأساسي من قاعدة البيانات.

ولسوء الحظ، عند تشغيل هذا الرمز على قاعدة بيانات منسوخة، العمود PK لديه مجموعة الخاصية rowguid، وأحصل على الخطأ التالي:

<اقتباس فقرة>   لا يسمح تحديث الأعمدة مع الخاصية ROWGUIDCOL:

وSystem.Data.SqlClient.SqlException.   وانتهت العملية في المشغل. تم إحباط الدفعة.     في System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors (RowUpdatedEventArgs rowUpdatedEvent، BatchCommandInfo [] batchCommands، Int32 commandCount)     في System.Data.Common.DbDataA ...

وكيف يمكنني منع tableadapter من تحديث هذا العمود (القيمة هي نفسها)؟

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

المحلول

ويمكنك تحرير SQL التي تم إنشاؤها لأمر التعديل في مصمم DataSet فقط اضغط على محول والعثور على UpdateCommand يدويا. هل هناك سبب أن كنت تقوم بتحديث المفتاح الأساسي؟ إن لم يكن (ويجب أن لا يكون، إذا كان ذلك ممكنا)، ثم يجب عليك إزالة هذا من الأمر.

نصائح أخرى

إذا وضعت في الواقع العمود الخاص بك كمفتاح أساسي في DataSet كتابة السيارات ولدت بيان محدث لا ينبغي أن يكون محاولة لتحديثه. وأود أن ننظر المصمم وتأكد من أنه هو في الواقع مفتاح أساسي.

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