PDA

View Full Version : مشکل در insert



forodo007
یک شنبه 06 مهر 1393, 18:31 عصر
سلام به دوستان.
من دو تا تیبل دارم که به هم در ارتباطن.
من میخوام وفتی insert میکنم تو جئول a ، کلید اصلی این حدول نو یه جدول دیگه (b) که کلید خارجی اون میشه هم درج بشه.

mohammad reza beizavi
یک شنبه 06 مهر 1393, 19:15 عصر
درود
خب این توضیحه یا مشکلی دارید و اینم صورت مسئله؟!!!
شما به محض درج مقدار دز جدول اول id اون رو (به هر روشی، با دیتابیس و @@IDENTITY یا با یه کوئری ساده از سمت برنامه نویسی) به دست میارید و توی جدول دوم ثبت می کنید. همین....
بهترین روش هم به نظرم استفاده از trigger هست، یعنی روی Insert جدول اولی یه trigger بنویس که اطلاعاتت رو تو جدول دومی ثبت کنه.
اینجا هم بحث شده کامل (تاکید کنم کامل) بخونید:
http://barnamenevis.org/showthread.php?469758-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D9%88%D8%B3%DB%8C%D8%AC%D8%B1-%D8%AF%D8%B1-asp

forodo007
دوشنبه 07 مهر 1393, 00:43 صبح
خب من حوندم ولی بقیه قیلدهاش که خالین ؟میشه وقتی id نو اون جدول بره بدون ایکه بقیه فیلدهاش پربشه؟

forodo007
دوشنبه 07 مهر 1393, 00:45 صبح
ببیدین من دو table دارم سوال و حواب
که میخوام وقتی سوال رو درج میکنه id اون بره تو حدول جوابها که بغد بدونم این حوابها مربوط به کدوم سوال؟

asemoon barooni
دوشنبه 07 مهر 1393, 01:29 صبح
جدول دومی شما فقط id کلید خارجی رو می خواد فیلدهای دیگه چی ؟

اگه فقط همون فیلد نیاز به درج شدن داره تو جدول دومی همون طور که گفتن یک تریگر روی جدول اولی بنویسید تا موقع درج اون جدول دومی هم درج بشه همزمان .. نحوه طراحی جداول رو بگید تا دقیق تر توضیح بدیم.

pezhvakco
دوشنبه 07 مهر 1393, 07:22 صبح
سلام

ببیدین من دو table دارم سوال و حواب
که میخوام وقتی سوال رو درج میکنه id اون بره تو حدول جوابها که بغد بدونم این حوابها مربوط به کدوم سوال؟

Trigger ها پارامتر (مقدار ورودی) نمی پذیرند .

شما می تونید با یک SP همه این کار ها رو انجام بدهید =>
1)دستور اضافه کردن یک ردیف تازه در جدول پرسش ها
2) بدست آوردن مقدار ID این ردیف تازه Scope_Identity()
3) ساخت ردیف های پاسخ برای این ID در جدول پاسخ ها

اگر همه این دستورات به صورت یک تراکنش (TransAction) با امکان بازگشت (RollBack) باشد، بهتر است .

forodo007
دوشنبه 07 مهر 1393, 15:45 عصر
میشه بگین این scop جه حوریه ولی نه با استور پروسحر نو کد سی شارپ

pezhvakco
دوشنبه 07 مهر 1393, 17:13 عصر
میشه بگین این scop جه حوریه ولی نه با استور پروسحر نو کد سی شارپ

Scope_Identity()
فقط در SP پاسخ میدهد و ان هم پس از اضافه کردن (Insert) یک ردیف جدید

http://www.dotnettips.info/post/1381/identity-%D9%88-%D9%85%D8%A8%D8%A7%D8%AD%D8%AB-%D9%85%D8%B1%D8%A8%D9%88%D8%B7%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%D9%86%D8%AD%D9%88%D9%87-%D8%A8%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-identity

forodo007
سه شنبه 08 مهر 1393, 18:45 عصر
خب من ای دی رو وقتی سوال را در جدوب سوالا درح میکنم به دست میارم که این ای دی کلید اصلی است و در رویداد دکمه مربوط به سوال است حالا وقتی ماربر داره جواب ها را در یه نکس باکس دیگه درج میکنه جه طور این ای دی که به دست اوردم را درح کنم. که بدونم این حواب مال این سوال است.

pezhvakco
چهارشنبه 09 مهر 1393, 08:26 صبح
بهتر بر این است شما همه عملیات (اضافه کردن ردیف های پرسش و پاسخ ها در جدول های مربوطه ) را یکباره انجام دهید که از خطا های احتمالی جلوگیری شود :
این روش که شما ابتدا پرسش را ذخیره نمایید و سپس منتظر ذخیره پاسخ ها بمونید زیاد کار درستی نیست چون اگر به هر دلیلی (انصراف کاربر، قطع سیستم یا برق و ...) پاسخ را ذخیره نکند اون پرسش مشکل دار است .

پیشنهاد من این است که پرسش و پاسخ ها را بصورت پارامتر یه یک SP بفرستید و ان جا کار ها انجام شود .