PDA

View Full Version : Update کردن یه دیتاست که دوتا Table داره که به هم Join شدن



emad4000
سه شنبه 17 آبان 1384, 17:18 عصر
سلام به همگی
من یه دیتاست دارم که توی اون دوتا تیبل به هم join شدن

select a.id , a.name , a.male ,b.id , b.mark
FROM nametbl a LEFT OUTER JOIN
(select * FROM marktbl WHERE male=true) a
ON a.id = b.id

سعی کردم ساده تر بنویسمش
از تیبل a اسم افرادی رو که مرد هستند (male=true) در میاره و با تیبل b جوین می کنه
این جوری اسم تمام مردها انتخاب میشه و اگه یه شخص mark نداشته باشه براش null در نظر می گیره

حالا من اینا رو توی یه دیتاگرید گذاشتم . حالا کاربر می تونه برای اشخاصی که mark ندارن یه مقدار جلوشون تو دیتاگرید وارد کنه . ولی مشکل من اینجاست که این تیبل b دیگه Update نمی شه

dim cb as new oleDbCommandBuilder
cb.dataadapter=adapter
adapter.update(dataset,"marktbl")

اروور می ده و می گه reference is not valid یه چیزی تو همین مایه ها
حالا موندم چیکارش کنم
لطفا راهنماییم کنید
ممنون

سید مسعود موحد
چهارشنبه 18 آبان 1384, 09:58 صبح
وقتی که دوتا جدول را با هم JOIN میکنی دیگه ADo‌اجازه تغییرلات را در آن نمیدهد باید خودتون بصورت دستور
UPDATE‌رکورد را UPDate‌کنی

emad4000
پنج شنبه 19 آبان 1384, 20:00 عصر
آخه مشکل اینجاست که این اطلاعات استخراج شده داخل یک دیتاگرید نمایش داده میشن :ناراحت: . من چه جوری می تونم اطلاعات تغییر یافته داخل دیتاگرید رو آپدیت کنم ؟ذ

majid_afra222
شنبه 21 آبان 1384, 07:45 صبح
سلام
بجای اینکه دو تا جدول رو مستقیما تو یه پرس و جو تو برنامه join کنی، تو یه view قرارشون بده و view رو تو گرید نمایش بده، برای اعمال تغییرات هم یه تریگر instead of روی view بنویس.

emad4000
شنبه 21 آبان 1384, 20:47 عصر
سلام
بجای اینکه دو تا جدول رو مستقیما تو یه پرس و جو تو برنامه join کنی، تو یه view قرارشون بده و view رو تو گرید نمایش بده، برای اعمال تغییرات هم یه تریگر instead of روی view بنویس.

ممنون که جواب دادین :تشویق:
من در مورد view یه چیزایی می دونم ولی متاسفانه در مورد instead of چیزی نمی دونم
ممنون می شم اگه بیشتر توضیح بدید !!

majid_afra222
یک شنبه 22 آبان 1384, 08:31 صبح
سلام
تریگر instead of همون طور که از اسمش پیداست، بجای انجام عملیات پیش فرض insert و delete و update روی ویوی خواسته شده، عملیات insert و ... جدیدی رو که ما تعیین می کنیم اعمال می کنه.
تو BOL عبارت INSTEAD OF triggers رو وارد کن.