PDA

View Full Version : عوض کردن پیغام خود با پیغام سیستم



ameysams
دوشنبه 03 دی 1386, 21:46 عصر
با سلا خدمت دوستان عزیز من به مشکلی برخوردم که امیدوارم در رفع آن به من کمک کنید
با استفاده از wizardهای vsیک bindingsourceویک dataset ساختم و یک datagridview را با
با کمک آنها fillکردم حالا اگر کاربر در datagridview بخواهد سطر جدیدی ایجاد کند اگر بدون کامل کردن تمام فیلدها بخواهد سطر را ترک کند یک سیستم یک پیغام میدهد مبنی بر اینکه
در databaseمقدار nullنامعتبر است تا اینجا درست حالا اگر بخواهیم بجای پیغام سیستم
خودمان یک پیغام به کاربر بدهیم چه کار باید بکنیم باتشکر

MH2538
سه شنبه 04 دی 1386, 06:44 صبح
از try و catch استفاده کن و با گرفتن exceptionها به جای نمایش پیغام های سیستم اون، پیغام‌های خودت رو نمایش بده.

ameysams
سه شنبه 04 دی 1386, 21:24 عصر
مشکل اینجاست که چون vbبه طور اتوماتیک این کار را انجام میدهد نمیدانم که در کدام رویداد باید try ,catchرا باید بنویسم

beh_develop
سه شنبه 04 دی 1386, 23:59 عصر
به نظر من اگه جدولی که اطلاعاتی می خواین توش ذخیره کنین رو همه فیلدهاش باید Null پذیر باشند و یا ایگه می خواین خودتون پیغام بدین راحت ترین راه حل اینه که در رویداد CellValidating دیتاگریدویو خودتون مقدار رو چک کنین و پیغامی که می خواین بدین.

MH2538
چهارشنبه 05 دی 1386, 07:17 صبح
با سلام
چیزی که مسلمه اینه که اگر برنامه رو با دقت بنویسید میشه گفت که تعداد خاصی از دستورات باعث ایجاد خطا و exception خواهند شد. مسلماً شما هم برای این دستورات نیاز به try دارید.
برای نمونه عرض می‌کنم :‌وقتی که کانکشن استرینگ رو باز (open) می کنید معمولاً نیاز به try هست به این دلیل که ممکن است سرور دیتابیس به هر دلیلی مشکل پیدا کند.

اَرژنگ
چهارشنبه 05 دی 1386, 08:42 صبح
اگر از برنامه نویسی ۳ لایه استفاده میکنید (که را درستش هم همین است) مثالهایه برایه روش درست انجام اینکار وجود دارند.

MH2538
چهارشنبه 05 دی 1386, 08:59 صبح
استفاده کور کورانه از try catch و ماسمالی کردن اشکلات در حد یک برنامه نویس نیست (حتی برنامه نویس وی بی)

استفاده از try به هیچ عنوان به معنی ماست‌مالی! کردن پروژه نیست.
شخصاً در تمام پروژه هام (که دست بر قضا 90٪ اونها n لایه هستند) از try استفاده می‌کنم ولی نه برای اینکه کاربر خطا رو نبینه!!! تصور کنید درج اطلاعات با خطا مواجه بشه و کاربر هم خطا رو نبینه. ضمن اینکه قبلاً هم گفتم و صورت مساله دوستمون هم تغییر پیغام هایی خطا به پیغام‌های قابل فهم برای کاربر بود نه حذف اونها.
من در هرجای پروژه که نقطه حساسی باشه و احتمال بروز خطا بنابدلایل غیرقابل کنترل ، غیر قابل پیش بینی بشه از try استفاده می‌کنم اما ضمن ارسال پیغام قابل فهم به کاربر ، اصل پیام خطا رو هم log می کنم و با یک روش خاص سریعاً به اطلاع admin برنامه می‌رذسونم و به این ترتیب به خودم هم در ارتقاء و بهبود نرم‌افزار کمک می‌کنم.
من در حال حاضر مشغول کار بروی config یک سیستم ERP‌که محصول یک شرکت خارجی‌است ، هستم در سیستم اونها هم تمام پیام‌های خطا که از طرف برنامه تولید می‌شه به پیغام‌هایی قابل درک برای کاربر تبدیل میشه.
ضمناً تعداد لایه ها ربطی به این مسئله پیدا نمی‌کنند.

اَرژنگ
چهارشنبه 05 دی 1386, 11:33 صبح
ضمناً تعداد لایه ها ربطی به این مسئله پیدا نمی‌کنند.

بستگی دارد به اینکه منظور از "این مسئله " چی باشد.
اگر "این مسئله " جایگزین کردن یک مساج با مساج دیگر هنگام بروز خطاست، بله ربطی ندارد.

ولی اصل این مطلب ربطی به try catch ندارد.
این سوال کلاسیکی است که همیشه برایه برنامه‌هایه داتابیسی پیاش میاد و اگر در لایه تجاری شرطهایه درست پیاده سازی شده باشد احتیاجی به این روشهایه غیره حرفه‌ای نیست.

http://aspalliance.com/1346_Getting_the_Most_Out_of_Windows_Forms_Data_Bi nding.2
روش درست حل این مسئله را برایه تازه کارها نشان میده.

من در ERP مایکروسافت داینامیکس استفاده از try catch را برایه اینچنین کاری را ندیدم.