نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل Failed to enable constraints با dataset موقع کوئری گرفتن

  1. #1
    کاربر دائمی آواتار asadegha
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    اینجا، همه جا، هیچ جا، چه فرقی داره؟
    پست
    274

    مشکل Failed to enable constraints با dataset موقع کوئری گرفتن

    سلام دوستان

    دارم یه برنامه مینویسم با معماری سه لایه.
    تو لایه Data یه دیتاست دارم که برای یه جدولش یه کوئری از چند جدول گذاشتم.
    و تو لایه Business یه متد(Select_view) گذاشتم که پارامترها رو میگیره و به متد(Select_CourseBase) مربوط به کوئری در لایه data میفرسته, اطلاعات برگشت داده شده رو هم به لایه View میفرسته.

    حالا مسئله اینجاست که وقتی به صورت دستی متدSelect_CourseBase رو فرا خونی میکنم درست جواب میده ولی وقتی تو لایه متد Select_view اجرا میشه ارور زیر رو میده.

    Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

    ولی درج و حذف و ویراش رو درست انجام میده.

    این قضیش چیه؟ چیکارش کنم؟

  2. #2
    کاربر دائمی آواتار asadegha
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    اینجا، همه جا، هیچ جا، چه فرقی داره؟
    پست
    274

    نقل قول: مشکل Failed to enable constraints با dataset موقع کوئری گرفتن

    یعنی 14 نفر اومدن بازدید کردن هیچ اطلاعاتی نداشتن بدردم بخوره؟
    اگه نمیدونین چرا اومدین؟ تعداد پاسخ ها که صفره.

  3. #3
    کاربر دائمی آواتار cherchil_hra
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    تهران
    پست
    162

    Lightbulb نقل قول: مشکل Failed to enable constraints با dataset موقع کوئری گرفتن

    خاصیت EnforceConstraints دیتاستت را برابر false قرار بده. علتش هم همونه که گفته یا فیلدت مقدار null نمیگیره ، یا کلید خارجی هست و یا باید مقدارش uniqe باشه
    dataSet.EnforceConstraints=false;


    حالا شما میگی که وقتی اجراش می کنی مشکل پیش نمیاد ولی توی برنامه این خطا را میده. احتمالا به خاطر relation باشه که سه حالت داره و دیتاست شما روی حالت یک یا دو باشه:

    both relation and foreign key constraint
    Foreign key constraint Only
    Relation Only
    1. هم ارتباط هست و هم تضمین می کنه که اگر کلید اصلی تغییر کرد یکپارچگی داده ها از بین نره(رفتارش را شما تعیین می کنی که تغییرات را اعمال بکنه یا نه)
    2.ارتباط نیست و فقط هماهنگی کلید اصلی با کلید خارجی هست
    3. ارتباط هست. اگر Relation شما روی حالت سوم باشه این خطا رو نخواهی داشت. ولی اگر کلید اصلی شما تغییر بکنه، تغییری در کلید خارجی شما داده نمیشه و یکپارچگی داده هات از بین میره و خطای دیتابیست را باید جمع و جور کنی!

    اگر فایل دیتاست به برنامه ات اضافه می کنی می تونی از همون قسمت این تنظیمات را عوض کنی وگرنه با کدنویسی. اگر هم حوصله اش را نداری و مطمئن هستی که داده هات درست ثبت می شه (با حفظ یکپارچگی) از همون روش بالا استفاده کن.

    این لینک هم راجع به این سه حالت هست: Introduction to DataRelation Object
    موفق باشی!

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمانشاه-هرسین
    پست
    40

    نقل قول: مشکل Failed to enable constraints با dataset موقع کوئری گرفتن

    میدونم جواب رو بعد از موعد هستش ولی خالی از لطف نیست
    جواب این دوست عزیزمون کار میکنه ولی پاک کردن صورت مساله هستش چرا که توی دیتاگرید اون ردیف هایی که مشکلساز شدند رو توی گرید نمایش نمیده !!!( این آیا پاک کردن صورت مساله نیست؟)
    جواب»
    شما 100% مشکلتون مرتبط با کلید اصلی یا فرعی هستش
    حالا »
    این مشکل زمانی پیش میاد که کلید ترکیبی دارید یعنی ترکیب 2 تا فیلد کلید اصلی شمارو تشکیل میدند ! ولی خب این که اصولا نباید مشکلی پیش بیاره !! نه؟
    پس مشکل چیه؟
    مشکل اینه که شما اول کار یه دونه کلید واسه جدولتون گذاشتید بعد دیتاست رو ساختید بعد مدت زمانی تشخیص دادید که کلیدتون رو ترکیبی بسازید ولی یادتون رفته که کلید رو توی دیتاستتون هم تنظیم کنید و از دیدگاه دیتاست محترمه !! کلیدتون یه دونست !!

  5. #5

    نقل قول: مشکل Failed to enable constraints با dataset موقع کوئری گرفتن

    نقل قول نوشته شده توسط cherchil_hra مشاهده تاپیک
    خاصیت EnforceConstraints دیتاستت را برابر false قرار بده. علتش هم همونه که گفته یا فیلدت مقدار null نمیگیره ، یا کلید خارجی هست و یا باید مقدارش uniqe باشه
    dataSet.EnforceConstraints=false;


    حالا شما میگی که وقتی اجراش می کنی مشکل پیش نمیاد ولی توی برنامه این خطا را میده. احتمالا به خاطر relation باشه که سه حالت داره و دیتاست شما روی حالت یک یا دو باشه:

    both relation and foreign key constraint
    Foreign key constraint Only
    Relation Only
    1. هم ارتباط هست و هم تضمین می کنه که اگر کلید اصلی تغییر کرد یکپارچگی داده ها از بین نره(رفتارش را شما تعیین می کنی که تغییرات را اعمال بکنه یا نه)
    2.ارتباط نیست و فقط هماهنگی کلید اصلی با کلید خارجی هست
    3. ارتباط هست. اگر Relation شما روی حالت سوم باشه این خطا رو نخواهی داشت. ولی اگر کلید اصلی شما تغییر بکنه، تغییری در کلید خارجی شما داده نمیشه و یکپارچگی داده هات از بین میره و خطای دیتابیست را باید جمع و جور کنی!

    اگر فایل دیتاست به برنامه ات اضافه می کنی می تونی از همون قسمت این تنظیمات را عوض کنی وگرنه با کدنویسی. اگر هم حوصله اش را نداری و مطمئن هستی که داده هات درست ثبت می شه (با حفظ یکپارچگی) از همون روش بالا استفاده کن.

    این لینک هم راجع به این سه حالت هست: Introduction to DataRelation Object
    موفق باشی!

    تشکر با همون دستور اولی کارم راه افتاد
    خدا خیرت بده

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •