PDA

View Full Version : نمایش مقادیر متناظر با کلید خارجی.در یک کمبوباکس



piroozman
سه شنبه 12 شهریور 1387, 22:33 عصر
با سلام، ابتدا مقداری در خصوص کاری که میخواهم انجام بدم و انجام داده ام نوشته ام
فرض کنیم که جدول1 دارای یک کلید خارجی از جدول 2 باشد. حال می خواهیم مقادیر یکی از ستونهای موجود در جدول 2 را که متناظر با مقدار کلید خارجی است را در یک فرم به نمایش در آوریم. برای این کار می خواهم از BindingNavigator استفاده کنم و نیز مقدار بدست آمده از مقادیر متناظر کلید خارجی در جدول 1 در یک کمبوباکس به نمایش در بیاد. ضمن اینکه وقتی ایتمی را در کمبوباکس انتخاب می کنم سایر فیلدهای متناظر با مقدار انتخاب شده در فرم نیز تغییر کند.حالا نمی دونم توضیح خوبی دادم یا خیر؟
ضمنا کاری که من کردم و هنوز نتونستم جواب بگیرم اینه که:
1-مقدار خصیصه Data Source کمبوباکس را برابر با DataTable2 موجود در Dataset ایجاد شده از Table2 قرار داده ام.
2-مقدار Display Member کمبوباکس را برابر با ستون مورد نظر در جدول 2 انتخاب کردم.
3-مقدار Value Member کمبوباکس را برابر با ستون کلید اصلی جدول 2 انتخاب کردم.
4-و در نهایت مقدار خصیصه Selecte Value کمبوباکس را برابر کلید خارجی موجود در جدول 1 قرار دادم.
با این کار مقدار ستون مورد نظر و متناظر با کلید های خارجی در کمبوباکس مشاهده می شود ولی مشکل این است که:
1-کلیه مقادیر ستون موجود در جدول 2 را نمایش می دهد. بهتر بگم عمل فیلتر و متناسب با کلیدهای خارجی موجود در جدول 1 صورت نمی گیره و تمامی مقادیر موجود در ستون مورد نظر در جدول 2 در داخل کمبوباکس دیده میشود.
2-با زدن کلیدهای next و previous کلیه فیلدها متناسب و متناظر با هم تغییر می کنند ولی با انتخاب یکی از گزینه های موجود درکمبوباکس سایر فیلدهای متناظر با ایتم انتخاب شده تغییری نمی کنند.
ضمناً نمونه کد برنامه و جداول 1 و 2 پیوست می باشد. دیتابیس پیوست در sqlserver2005 و نمونه کد نیز در visual studio2005 ایجاد شده اند هر دو با نام َAgreementTest. لطف کنید راهنماییم کنید.

h_floppy
چهارشنبه 13 شهریور 1387, 11:00 صبح
می تونی یه کمبو باکس و یه دیتا گرید بزاری کمبو باکست رو به دیتا گرید بایند کنی (موقع قرار دادن گرید ویوو می تونی این کار رو انجام بدی) بهد از event دیتا گرید اونت cellenter رو کلیک کنی و مقار متناظر با کلید خارجی رو اینطور بدست بیاری
txt.text=convert.tostring(datagridview1.rows[e.rowindex].cell[1[.value;

piroozman
چهارشنبه 13 شهریور 1387, 14:26 عصر
می تونی یه کمبو باکس و یه دیتا گرید بزاری کمبو باکست رو به دیتا گرید بایند کنی (موقع قرار دادن گرید ویوو می تونی این کار رو انجام بدی) بهد از event دیتا گرید اونت cellenter رو کلیک کنی و مقار متناظر با کلید خارجی رو اینطور بدست بیاری
txt.text=convert.tostring(datagridview1.rows[e.rowindex].cell[1[.value;
من نمی خوام تو فرمم دیتاگرید داشته باشم. اما با اینوجود می شه بیشتر توضیح بدی. آیا کاملا متوجه سئوال بنده شدی یا اینکه اگر لازمه بیشتر توضیح بدم. ای کاش فایلها رو دانلود می کردی و یک بار تست می کرد و نیز منظور خودت را به صورت فایل ضمیمه می دادی تا بیشتر بررسی می کردم. خیلی توی این مسئله گیر کردم و هنوز هم نتونستم مشکلم رو حل کنم.
با تشکر

piroozman
چهارشنبه 13 شهریور 1387, 22:14 عصر
بابا ترا به خدا یه مسلمون پیدا شه جواب ما رو بده!!!

razavi_university
دوشنبه 18 شهریور 1387, 22:09 عصر
دوست عزیز من درست متوجه نشدم،
شما می خواهید با انتخاب مقداری از جدول 1 مقادیر نمایشی از جدول 2 تغییر کند؟
مقادیر جدول 1 رو در چه کنترلی می خواهید نمایش دهید؟(کمبو یا ...)
مقادیر مرتبط جدول 2 را در کجا می خواهید نمایش دهید؟

piroozman
دوشنبه 18 شهریور 1387, 23:38 عصر
من از دوستانی که به این تاپیک توجه کردند خیلی ممنونم. بالاخره به این نتیجه رسیدم که اطلاعات مورد نیاز خودم را از دو جدول مذکور با استفاده از دستور select و به صورت تلفیقی استخراج کنم و دیتاست خودم را با این جدول بازگشتی دستور select پر کنم.
--------------------------------------------------------------------------------------------------
طاعات همه دوستان قبول حق