PDA

View Full Version : استفاده از متد haschanges



f_pakzad
جمعه 02 اسفند 1387, 15:42 عصر
من میخوام اگر کاربر اطلاعاتی رو ویرایش کرد اما یادش رفت ذخیره کنه موقع بستن فرم بهش پیغام داده بشه. در رویداد formclosing()اینطوری نوشتم: if (ds.HasChanges()) MessageBox.Show("error"); اما موقع بستن فرم هیچ پیغامی نمیده.آیا راه دیگری وجود داره که بتونیم بفهمیم کاربر اخرین تغییرات رو ذخیره کرده یا خیر؟

majid325
شنبه 03 اسفند 1387, 00:15 صبح
تغییرات صورت گرفته در DataSet (http://barnamenevis.org/forum/showthread.php?t=49677)

f_pakzad
جمعه 09 اسفند 1387, 00:10 صبح
هرچی پست در این باره بود خوندم امما باز هم مشکل دارم برنامه نمونه رو اینجا میگذارم دقیقا همون مثال binding example کتاب هاشمیان هست. اصلا نمیتونه تشخیص بده که تغییرات ایجاد شده و حتی عد از یک بار پیمایش رکورد بدون اینکه تعییری ایجاد کنم پیغام مبنی بر تخییر دیتا ست میده! یه هفته است که درگیر این موضوعم.خواهش میکنم کمک کنید اشکال این کد در کجاست؟

f_pakzad
جمعه 09 اسفند 1387, 00:46 صبح
نمیدونم چرا آپلود نمیشه اینجا؟ مجبور شدم از رپید استفاده کنم با عرض پوزشhttp://rapidshare.com/files/202959352/BindingExampl.rar.html

majid325
جمعه 09 اسفند 1387, 02:02 صبح
روش کارتون نشون میده , که ado رو هنوز به طور متوسط هم درک نکردید,البته چیز خاصی نیست با یه کم تمرین میتونید کاملا تسلط پیدا کنید,برای مثال : شما وقتی میخواین از متد های دیتاست استفاده کنید میباست dataset در جریان تمام کارها باشه , وقتی شما از شی command برای update و insert استفاده میکنید خوب معلومه که dataset نمیفهمه که باید متد haschanges رو مقدار دهی کنه , برای اینکه متوجه عرض بنده بشید سعی کنید عملیات update و insert و ... رو با dataset انجام بدین , در ضمن سعی کنید رابطه متد acceptchange(اگه درست یادم باشه) که مربوط به dataset هست با متد haschanges رو پیدا کنید.
داشت یادم میرفت database های sql دارای 2 فایل میباشند که شما فقط یکیشون رو ضمیمه کردی که من نتونستم برنامه رو run کنم ولی کدتون رو دیدم.

f_pakzad
جمعه 09 اسفند 1387, 11:28 صبح
اگر به خاطر استفاده نکردن از دیتاست متوجه تغیرات نمیشه پس چرا بعد از یک بار پیمایش رکورد پیغام مبتنی بر تغییر میده؟ و اگر باید موقع پیمایش رکور از accept change استفاده کنم که دیگه هچ وقت متوجه تغییرنمیشه.دیتابیس رو گذاشتم .با این روشی کهذ گفتید چک میکنمhttp://rapidshare.com/files/203109937/pubs.rar.html از توجهتون متشکرم

f_pakzad
جمعه 09 اسفند 1387, 12:07 عصر
رفتم از روشی که گفتید استفاده کردم.باز هم متوجه تغییرات نمیشه برای پیغام هایی که موقع نمایش بدون ایجحاد تغییر میده هم موقع کلیک روی next,....از acceptchange استفاده کردم.اینجوری دیگه پیغام الکی نمیده اما نفهمیدن تغییرات سر جاشه آیا راه دیگهای وجود داره تا بتتونم تغییرات رو قبل از بسته شدن فرم بفهمم؟مثلا dataview یا هر چی.. راه دیگه ای که به ذهنم رسد اینه که تو حالت معمولی همه کنترل هامو disable کنم.بعد اگر کلید اضافه یا ویرایش رو فشار داد اما ذخیره نکرد بهش پیغام بدم.اما مشکل اینه که در حالت disable کنترل ها ناخوانا هسنتد.و فکر کنم اصلا راه اصولی هم نیست چه کنم؟

majid325
شنبه 10 اسفند 1387, 02:05 صبح
اگر باید موقع پیمایش رکور از accept change استفاده کنم که دیگه هچ وقت متوجه تغییرنمیشه
من کی گفتم باید این کار رو بکنی؟

رفتم از روشی که گفتید استفاده کردم.باز هم متوجه تغییرات نمیشه
خوب برنامه رو اگه به همون روشی که گفتم انجام دادی بزار (با بانکش) تا بررسی کنم.

البته برای کاری که میخوای انجام بدی روش صحیحی رو انتخاب کردی ولی این لینک (http://barnamenevis.org/forum/showpost.php?p=591821&postcount=128) دیدنش خالی از لطف نیست.

f_pakzad
یک شنبه 11 اسفند 1387, 22:11 عصر
لینکی که گفتید رو دیدم
دقیقا همون مشکلی که با haschange داشتم در مورد این هم پیش میاد
اصلا اشکال از دیتا ست نیست.فکر کنم به چیمایش رکورد ها مربوط میشه.
همینکه فرم اصلی لود میشه پیغام مربوط به تغییر دیتا ست رو میده.و هر بار که رمورد هار و پیمایش کنم حتی اگا مقادیر رو تغییر ندم باز هم فکر میکنه این دیتاسته که تغییر کرده!