مشاهده نسخه کامل
: بهينه كردن فرم براي ويرايش اطلاعات
hobab1987
20-09-2010, 17:28
سلام
براي ويرايش اطلاعات بر اساس كد يا اي دي من فرم هامو به اين صورت درست كردم
يك راه ساده تر و خلاصه تر وجود نداره؟
مثلا به جاي تكرار كنترل ها در يك فرم ويرايش اطلاعات ضيافت و اضافه كردن كنترلي براي دريافت كد تنها كد را در فرم جديد دريافت كنيم و بقيه اطلاعات در همان فرم اول(ضيافت) گرفته بشه و ويرايش رو انجام بشه.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
aliaghaaaaa
20-09-2010, 18:05
سلام دوست عزیز.
شما می تونید تمام اطلاعات رو تو یه datagridview لود کنید . مثلا اطلاعات کد، زمان، تاریخ و محل رو لود کنید.
بعد کاربر، رو هر کدوم از ردیف ها که تو دیتاگرید هست کلیک کرد، کد اون بیاد تو یه متغیر و ازش استفاده کنید.
این راه ساده و سریعی هست. اگه کاربر بخواد این اطلاعات رو وارد برنامه کنه و برنامه، بخواد کد اون رو لود کنه، خیلی طول میکشه. ولی از این راه بهتره.
البته اگه دوستان دیگه، راه بهتری سراغ دارن لطف کنن و بگن تا من هم اطلاعاتم بیشتر بشه.
alidata2010
20-09-2010, 18:15
بله این روشی که دوستمون گفتن تایید میشه بهتره موقع لود فرم همه ی اطلاعات دیتابیس بیاد داخل دیتا گرید وبعد کاربر با کلیک روی هر سطر بتونه اطلاعات اون سطر رو تو تکست باکسها ببینه وبعد ویرایششون کنه
aliaghaaaaa
20-09-2010, 18:43
سلام.
اینم کد برای خوندن اطلاعات از دیتاگرید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کدی که من نوشتم، این کار رو میکنه:
خط اول: اندیس اون ردیفی که شما روش کلیک کردید رو برمیگیردونه
خط دوم: در ردیف کلیک شده، اطلاعات اون ستونی که اسمش id هست ( کد ) و اندیس ردیفش رو هم که بدست آوردیم، رو برمی گردونه.
بعدش شما می تونید از کدش هر جایی که خواستید استفاده کنید.
موفق باشید.:11::11::11:
hobab1987
21-09-2010, 12:10
خيلي ممنون از توضيحات خوبتون.
فقط يك اشكالي داشتم.
منظور از اين مقدار 0، SelectedRows چيه؟
اصلا لازمه مقدار بگيره؟
بعد از نوشتن اين ارور رو داد لطفا راهنماييم كنيد.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
كه كد رو در شرط هم گداشتم
و دستور اپديتم رو هم در اخر به اين صورت نوشتم درسته؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
aliaghaaaaa
21-09-2010, 12:39
سلام.
خواهش می کنم.
شما باید اول تو قسمت form_load اطلاعات رو لود کنید تو دیتا گرید.
بعد این کد ها رو تو قسمت کد نویسی دیتاگرید بنویسید تا وقتی یکی کلیک کرد رو دیتاگرید، این کدها فراخوانی بشه و اطلاعات اون ردیفی که روش کلیک کردن رو بیاره.
2- من از استادم که پرسیدم گفت که باید اندیس 0 رو بنویسیم.
یاعلی، موفق باشی.
anvar.net
21-09-2010, 18:04
معمولا از روشی که شما استفاده کردید استفاده نمی کنند.
بهترین راه همونه که ثبت و ویرایش اطلاعات در یک فرم صورت بگیره اما نمایش مجزا باشه.
حالا شما نیاز به ID رکورد مورد نظر دارید (البته این نکته هم گفتنیه که تو برنامه های استاندارد نمایش اطلاعات بصورت مجزا از فرم ثبت و ویرایش صورت می گیره). شما هم می تونیدتو برنامه تون از همین شیوه استفاده کنید : یعنی یک فرم که ظاهرا همون دیتاگرید میشه رو در یک فرم قرار بدید صرفا برای نمایش اطلاعات. حالا واسه ثبت و ویرایش یک رکورد می تونید یه فرم دیگه اضافه کنید یا بصورت یک پنل در زیر فرم قرار بدید و با انتخاب رکورد از دیتاگرید بتونید اون رو ویرایش کنید. اگه فرم ویرایش و ثبت رو مجزا طراحی می کنید در همون فرم دکمه هایی برای پیمایش رکوردها به سمت عقب و جلو همدر نظر بپیرید که کاربر راحت تر باشه.
اگه دقیقا متوجه نشدی بگو عکس و کد بذارم
alidata2010
21-09-2010, 18:07
باید تو رویداد mouse up دیتا گرید ویو بنویسی. مثلا میخوای مقدار سلول اول ردیفی که توش هستی تو تکست باکس بلافاصله نمایش داده بشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این تو سی شارپ جواب میده . اون صفر هم اندیس ستون اول دیتا گریده که شما میتونین تغییرش بدین اگه 3 تا ستون دارین مثل زیر عمل کنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.