PDA

View Full Version : حذف و ویرایش همزمان چهارجدول



dina123
دوشنبه 05 مهر 1389, 09:49 صبح
توی پروژه ای که دارم می نویسم (کلینیک) بخشی به عنوان تعیین وقت ویزیت دارم که توی یک GridWview ساعت، تاریخ، نام بیماری که در ساعت و تاریخ مشخصی وقت گرفته و نام پزشک موردنظر رو نمایش میده.
که برای نمایش این اطلاعات از این کد استفاده کردم:


SELECT Reserve.Time, Reserve.Date, Doctor.NameFamily, Malady_Type.Malady_Type, Register.NameFamily AS UserName
FROM Reserve INNER JOIN
Malady_Type ON Reserve.Malady_id = Malady_Type.Malady_id INNER JOIN
Register ON Reserve.UserName = Register.UserName INNER JOIN
Doctor ON Reserve.Dr_Username = Doctor.Dr_Username


حالا می خوام همین اطلاعات رو توسط GridWview حذف و ویرایش کنم. ولی چون هر کدوم از اینها از جدول جداگانه ای هستن حذف و ویرایش کار نمی کنه.
از دوستان خواهش می کنم راهنمایی کنن که کدهای حذف و ویرایش با توجه به کد Select که من نوشتم، به چه شکلی میشه؟

tooraj_azizi_1035
دوشنبه 05 مهر 1389, 15:37 عصر
سلام، شما خودت کد رو تولیدنکن. توی زمانی طراحی قسمت ویرایش ستون های Grid برای هر ستون خاصیت DataSource و Field رو ست کن.

dina123
سه شنبه 06 مهر 1389, 18:00 عصر
میشه یه کم بیشتر توضیح بدید؟ متوجه منظورتون نشدم.

من کدهای Select رو توسط قسمت Query Builder بدست آوردم. به این صورت که جدول هایی که لازم داشتم رو وارد محیط کردم و فیلدهای موردنیازم رو از هر جدول انتخاب کردم.

اما با همین روش، ویرایش و حذف کار نمی کنن. البته من از روش View هم استفاده کردم، یعنی این چهارتا جدول رو تو یه View ریختم و توی GridWview سعی کردم این Viewی بدست آمده رو ویرایش و حذف کنم، که باز هم جواب نداد.

Rezahak
چهارشنبه 07 مهر 1389, 08:06 صبح
فكر مي كنم اگر از كليد خارجي استفاده كنيد و از cascade روي delete و update استفاده كنيد مشكل حل شود

tooraj_azizi_1035
چهارشنبه 07 مهر 1389, 14:33 عصر
میشه یه کم بیشتر توضیح بدید؟ متوجه منظورتون نشدم.

من کدهای Select رو توسط قسمت Query Builder بدست آوردم. به این صورت که جدول هایی که لازم داشتم رو وارد محیط کردم و فیلدهای موردنیازم رو از هر جدول انتخاب کردم.

اما با همین روش، ویرایش و حذف کار نمی کنن. البته من از روش View هم استفاده کردم، یعنی این چهارتا جدول رو تو یه View ریختم و توی GridWview سعی کردم این Viewی بدست آمده رو ویرایش و حذف کنم، که باز هم جواب نداد.

برای هر جدول که توی DataSet Designer وجود داره VS یه شی BindingSource (اسم این شی اول اسم جدوله و بعد عبارت BindingSource) درست می کنه به همراه یه TableAdapter. وقتی DataSource گرید رو به یکی از این bindingsource ها ست می کنی فیلد های اون جدول تو Grid ظاهر می شن. بعد با Config کردن اون TableAdapterمی تونی یکسری فیلدهایی رو اضافه کنی.وقتی توی TableAdapter Configuration Wizard به صفحه ی Choose Methods to Generate می رسی گزینه Create methods to send updates directly to the database رو بزن تا متدهای Update، Insert و Delete رو برات تولید کنه بعد با استفاده از متد Update شی BindingSource جدولت رکوردهارو Update کن. کد Update رو باید تو شیء RecordNavigator بنویسی. البته وقتی از QueryBuilder کد SQL رو تغییر می دی این چک باکس غیرفعال می شه (اگه از جدول دیگه ای فیلد اضافه کنی)، من فیلد ها رو به Grid اضافه کردم ( با Add کردن ستون اون هم فقط فیلدهایی رو که می خواستم از جداول دیگه بیارم) و بعد یکی یکی FieldName و DataSource اون ستون ها رو به جدول هایی که می خواستم ست کردم. درنهایت باید همه BindingSource رو Update کنی و بعد کد Update اون ها این کد رو بنویسی: TableAdapterManager1.UpdateAll که باعث اعمال تغییرات به صورت سلسله مراتبی یا Hierarchical Update می شه. :کف:
این لینک می تونه کمکت کنه:

http://msdn.microsoft.com/en-us/library/dex7k4dw(VS.80).aspx