PDA

View Full Version : کمک- درج مقدار در یک فیلد



arman_Delta2002
یک شنبه 21 تیر 1388, 11:38 صبح
سلام به همه
من چند جدول متداخل دارم که به وسیله فیلد کلید به یک دیگر متصل هستن. خوب من فقط مشکلم انجاست که کاربر زمانی که روی دکمه درج کلیک کنه رکورد جدید ایجاد میشه و مقدار فیلد LinkT1 از جدول Table2 برابر مقدار فیلد ID از جدول Table1 و رکورد به روز شه . بعد کاربر مقادیر فیلد های دیگه رو اگه خواست مقدار دهی کنه.
کدی که به یک فیلد از جدول مقدار میده و بقیه فیلد ها مقداری ندارن چیه؟
من از VB.Net 2008 و SQL2000 استفاده کردم. از اشیاء SqlDataAdapter
DataGridView
DataSet
SqlConnection
BindingSource استفاده کردم که
SqlDataAdapter مقادیر قسمت CommandText در زمان اجرا مقدار دهی میشوند.
اینم میدونم که این تایپک مثل بقیه تایپک هام بی جواب می مونه :عصبانی:

mn_zandy63
یک شنبه 21 تیر 1388, 23:15 عصر
سلام
1. مگه داری از TypedDataSet ها استفاده میکنی؟

از متنت اینطور برداشت کردم که نه، در این صورت خب مشکل نداری توی CommandText اون فیلدها رو مقدار دهی نکن.
2. فیلد های دیگت توی جدول Nullable هستند؟
3. خب تو که برات اهمیت نداره، اصلا چرا یه سری مقادیر پیش فرض نمیریزی؟

arman_Delta2002
چهارشنبه 24 تیر 1388, 02:15 صبح
اره TypedDataSet استفاده میکنم . میشه به برنامه بزارین که تو اون دوتا یا چند جدول پدر و فرزند باشه و بشه رکورد درج کرد و بروز کرد . من فقط میخوام یه رکورد رو بدون دردسر توی جدول فرزند درج و به روز کنم . میتونی کمک کنی بسم الله .

mn_zandy63
چهارشنبه 24 تیر 1388, 02:41 صبح
خب من متوجه نمیشم چه مشکلی داری.
جواب سوالمو ندادی،
فیلدهای دیگه ات Nullable هستند؟
آیا مشکلت اینه که دستور Insert همه ی فیلد ها رو ازت به عنوان ورودی میخواد؟
در اینصورت خب فیلد هایی که کاربرت پر نمیکنه NULL بفرست به دستور Insert.
مشکلت چیز دیگه است؟

arman_Delta2002
جمعه 26 تیر 1388, 02:09 صبح
آره میدونم چطوری از پس دستور Insert بر بیام تنها مشکلم اینه که نمیتونم زمانی که کاربر مقادیر داخل DataGridView2 که به تیبل فرزند ارتباط داره رو آپدیت کنم توری که رکورد آپدیت شده رو به رکورد پدر اشاره که. ازاین روشن تر نمیتونم بگم که با دوتا گرید که یکی به جدول پدر و دیگری به جدول فرزند اشاره کنه و کاربر تو همون گرید ها روکورد ها رو ثبت و ویرایش کنه . هرچی گشتم همچین چیزی تو سایت های خارجی پیدا نگردم مشابه اون بود که فقط رکورد ها رو نمایش میداد که من خودم هم این کار رو کردم فقط مشکل درج و بروز کردن گرید فرزند رو دارم . کمک کن لطفاً.:افسرده:

mn_zandy63
جمعه 26 تیر 1388, 02:31 صبح
اگه بتونی این صفحه ات رو یا ساده شدش رو بفرستی خیلی عالی میشه، مشکلی در فهم پیدا نمیکنیم، در عین اینکه برای منم راحت تر میشه بخوام مشکلت رو پیاده کنم، روش کار کنم، شاید بشه کمک کرد :لبخندساده:

الآن فقط میتونم حدس بزنم که چی خواستی، و الگوریتم حلش رو هم حدس بزنم.
من اینطور متوجه شدم. یه دونه DataGridView داری، که جدول پدر رو داره نشون میده، کاربرت یکی از رکورد های اون رو انتخاب میکنه، کلید Insert رو میزنه، در DataGridView پایین که به جدول فرزند متصل هست یه دونه رکورد اضافه میشه، که با استفاده از فیلد LinkT1 به رکورد پدر متصل میشه، و کاربر میتونه مقدار بقیه فیلد هارو در صورت نیاز مقدار دهی کنه.
خب، در این صورت، آیا نمیتونی، وقتی که روی کلید Insert کلیک شد، یک رکورد به جدول فرزند اضافه کنی که مقدار فیلد LinkT1 برابر با فیلد ID جدول پدر باشه و بقیه فیلد ها Null باشه. بعد DataGridView فرزند رو refresh کنی، قاعدتاً رکورد فرزندی که جدیداً اضافه کردی نمایش داده میشه، و کاربرت میتونه ویرایشش کنه، بعد از اتمام کارش همون رکورد Update میشه. مشکلی نداره که.

arman_Delta2002
جمعه 26 تیر 1388, 02:56 صبح
دقیقاً همین که فرمودی دوست عزیز . میتونی کمکم کنی؟
این برنامه رو فقط برای درک کاراییش درست کردم زحمت کد درج و بروز رسانی او با شما.من بیشتر مد نظرم درج و ویرایش و بروز رسانی رکورد در جدول فرزند هست

mn_zandy63
جمعه 26 تیر 1388, 23:50 عصر
سلام دوست عزیز پروژه ای که فرستاده بودی رو دیدم.
ببین این شکلی که من گذاشتم کارت راه نمیفته؟ همش رو سپردم به ویژوال استودیو.
میدونم که واردی، فقط گفتم شاید به ذهنت نرسیده باشه.
اگه لزوماً به اون روش که خودت نوشتی باید باشه بگو تا یه فکر دیگه کنیم. :لبخندساده:

arman_Delta2002
شنبه 27 تیر 1388, 01:42 صبح
:قهقهه: دستت درد نکنه . شی گرایی کار همه رو آسون کرده . دوست گرامی از تلاشت ممنونم ولی روشی که من پیاده کردم انعطاف پزیری بیشتری در پروژه های بزرگ داره که میشه حتی زمان اجرا هم کد ها رو دست کاری کرد. به شما هم پیشنهاد میکنم از این روش استفاده کنین. باز هم ممنون. ببینم چکار میشه کرد :بوس:

mn_zandy63
شنبه 27 تیر 1388, 01:55 صبح
خواهش میکنم، اما منظورت از تغییر در زمان اجرا رو متوجه نشدم :متفکر:
منظورت Query بود که زده بودی برای select کردن داده های گرید دوم؟
خب باید اعتراف کنم که خیلی وقته اصلاً UI طراحی نمیکنم، اینه که ممکنه فراموش کرده باشم بعضی از عملکردهای DataGridView رو، نمیدونم شاید اینطور باشه که میگی. اما با این چیزی که برات فرستادم فکر نمیکنم کمبودی داشته باشی. :متفکر: حتی تو پروژه های بزرک :چشمک:

arman_Delta2002
یک شنبه 28 تیر 1388, 02:16 صبح
درسته دوست گرامی . ممنون از کمکت mn_zandy63 (http://barnamenevis.org/forum/member.php?u=31426) یادم میمونه:متفکر:

mn_zandy63
یک شنبه 28 تیر 1388, 18:02 عصر
این رو هم یه نیگاه بنداز، شاید به دردت بخوره. :چشمک:
موفق باشی