PDA

View Full Version : سوال: روش حذف کردن اطلاعات از جدولی که با جداول دیگر رابطه دارد ؟



asrah6
سه شنبه 16 آذر 1389, 14:09 عصر
من چند جدول در دیتابیس دارم و با هم رابطه دارند اکنون در صفحه یک گرید ویو دارم که اطلاعات یکی از جدول ها را نمایش می دهد و می خواهم بعضی اطلاعات را حذف کنم ولی این ارور را به من می دهد .
System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_Nomarat_Dars". The conflict occurred in database "DANESHSYSTEMDATA", table "dbo.Nomarat", column 'DID'.
The statement has been terminated.

در ضمن کوئری مربوط به حذف به این صورت است
DELETE FROM [Dars] WHERE [DID] = @original_DID AND [DName] = @original_DName AND [Unit] = @original_Unit AND [IDPaye] = @original_IDPaye AND [IDReshte] = @original_IDReshte "
لطفا راهنمایی کنید.

PhoenixNet
سه شنبه 16 آذر 1389, 19:13 عصر
وقتی جداول رو طراحی کردید در هنگام ایجاد رابطه بین جداول در بخش Insert and Update spesefication می تونید گزینه های Update Role و Delete Role را تنظیم کنید.

rana-writes
سه شنبه 16 آذر 1389, 21:23 عصر
سلام
من یکی دو تا پروژه خیلی بزرگ دیدم که اصلا بین جدولها ارتباط برقرار نکرده بود، وقتی از برنامه نویسش پرسیدم میگفت برای جلوگیری از همچین خطاهایی اینکار رو میکنه و ارتباطها رو دستی کنترل میکنه، سخته ولی مدیریت راحت تره

sokote_bi_payan
پنج شنبه 18 آذر 1389, 11:41 صبح
به نام خدا
سلام
برای حذف ابتدا باید از اون جدول ها حذف بشه بعد بیاد از جدول اصلی تون حذف شه. این کارم با یک سلکت ساده حل میشه

asrah6
پنج شنبه 18 آذر 1389, 20:39 عصر
به نام خدا
سلام
برای حذف ابتدا باید از اون جدول ها حذف بشه بعد بیاد از جدول اصلی تون حذف شه. این کارم با یک سلکت ساده حل میشه
با تشکر که پاسخ دادید من در دیتابیس حدود 8 جدول دارم که با هم رابطه دارند و اطلاعات یکی از اونها را می خواهم حذف کنم حالا چگونه جدول اصلی را تشخیص دهم کدام است؟

majnun
پنج شنبه 18 آذر 1389, 20:54 عصر
با تشکر که پاسخ دادید من در دیتابیس حدود 8 جدول دارم که با هم رابطه دارند و اطلاعات یکی از اونها را می خواهم حذف کنم حالا چگونه جدول اصلی را تشخیص دهم کدام است؟

میتونید وقتی رابطه برقرار میکنید تنظیم کنید که اگر حذف شد به مقدار null یا اولیه تغییر داده بشه بقیه رابطه هاش

asrah6
پنج شنبه 18 آذر 1389, 21:41 عصر
میتونید وقتی رابطه برقرار میکنید تنظیم کنید که اگر حذف شد به مقدار null یا اولیه تغییر داده بشه بقیه رابطه هاش
متاسفانه هاست تمام پورت ها ی sql را بسته و من از طریق اف تی پی به پوشه سایتم دسترسی دارم و بانک در پوشه app_data اتچ شده .
آیا راهی هست تا دیتابیس اتچ شده را دانلود کرده ، تغییر دهم و سپس آپلود کنم تا نیاز به اتچ دوباره نباشه؟
هاست از آموزش و پرورش است و هیچ دسترسی برای اتچ یا دی اتچ کردن دیتابیس ندارم می خواستم دیتابیس را با دانلود مننجر دانلود کنم ولی دانلود نمیشه شاید چون در حال استفاده یا اتچ شده است
لطفا راهنمایی کنید.

m.hamidreza
جمعه 19 آذر 1389, 14:09 عصر
شما در قسمت WHERE کوئری Delete چرا این همه فیلد دارین؟
عموما Delete ها و Update هایی که در چند جدول نیاز هست اعمال شه از طریق یک SP انجام میشه و طراح دیتابیس این موارد رو طبق Business Rule هایی که از تحلیلگر میگیره بصورت دستی مدیریت میکنه. فیلدهای Parent و Child در جداول کاملا مشخص هست و اگر Parentای حذف میشه باید Childهاش هم حذف شن البته این اتفاق لزوما همیشه نمیفته ولی اکثرا همینطور هست.
موفق باشید.