ورود

View Full Version : چک کردن شرط در if



ramin149
سه شنبه 27 اردیبهشت 1390, 13:39 عصر
من یک شرط به صورت زیر نوشتم

Validator val = new Validator(lbl_error2);
if (val.isName(txt_Name) == true && val.txt_family(txt_Family) == true && val.isMessage(txt_User) == true && val.txt_pass(txt_Pass, txt_RepPass) == true)
{
}

مشکل من این که گزینه اول رو چک می کنه اگر false بود دیگه بقیه گزینه ها رو چک نمی کنه من می خواهم تمام شرط ها رو چک کنم (و این رو می دانم که از && استفاده گردم و می خواهم با && تا آخر چک شود )

volkswagen
سه شنبه 27 اردیبهشت 1390, 13:47 عصر
سلام -
خوب برای چک کردن همه شرط ها از else استفاده کنید.
یا تعداد if ها رو بیش تر کنید.

dontspeak
سه شنبه 27 اردیبهشت 1390, 13:52 عصر
خوب معلومه که بقیه رو چک نمیکنه. شما دبا این کد دارید میگید اگه 4 شرط همشون درست بود فلان کارو بکن. خوب اونم میاد اولی رو چک میکنه اگه درست بود میره سراغ بقیه شرطها و همینطور الی آخر حالا اگه اولیش غلط باشه دیگه نیازی به پک کردن بقیه نیست. اما اگه میخواید همه شرطها رو چک کنید و بدونید کدوم درسته یا کدوم غلط از چند تا if استفاده کنید

ramin149
سه شنبه 27 اردیبهشت 1390, 13:57 عصر
فکر کنم مطلب من رو نگرفتید
من یک فرم دارم که تعدادی textbox است که وصل می شوند به یک کلاس به نام validator و textbox ها رو چک می کنند اگر صحیح بود true برمی گرده و اگر غلط بود false حالا شرط بالا به این صورت که اگر همه این تابع ها برگشت true بود اطلاعات در دیتابیس ذخیره شوند و اگر غلط بود کاری نکند و یک پیغام به کاربر نمایش دهد .

اون توضیحی که شما داده ایددرست ولی باید 20خط کد نوشت ولی با این کار با یک خط هم می شه ولی مشکلش این که اولین تابع رو که چک می کنه و false بر می گردانه دیگر بقیه گزینه ها رو چک نمی کنه و فقط همون یک خط خطا را چاپ می کنه .

ramin149
سه شنبه 27 اردیبهشت 1390, 13:59 عصر
من روش شما رو بلدم و قبلا استفاده گردم ولی باید روشی باشه که تمام گزینه ها رو چک کنه فقط با یک if
اون روشی که شما می گید من باید 20 خط کد بنویسم حداقل

volkswagen
سه شنبه 27 اردیبهشت 1390, 15:12 عصر
فهمیدم ، منظور شما اینه که هر textbox که خالی بود یا .... برنامه بیاد به کاربر پیغام بده و اعلام کنه فیلد شماره فلان خالیه.درسته؟ مثل ثبت نام توی سایت ها...

برا این کار بازم باید از چند if استفاده کنید .
یک متغیر تعریف کنید ، هر جا خطایی اتفاق افتاد ، اون خطا رو به متغیر اضافه کنید.در آخر متغیر مجموعه کل خطاها را نمایش میده.

یا علی.

dontspeak
سه شنبه 27 اردیبهشت 1390, 15:23 عصر
رامین جان اگه می خوای به قول دوستون این کدا رو توی یه جایی مثل ثبت نام استفاده کنی ترجیحا بهتره که validation بذاری و بعد اعتبار سنجی به صفحه بعد بری و اونجا کاربر اوکی نهایی رو بزنه یه جورایی مثل ثبت نام توی یاهو اگه بخوای این کارو بکنی اصلا به دستور if هم نیاز نیست. خود کنترل validation مانع رفتن به صفحه بعد میشه. اما اگه می خوای حتما از روش خودت استفاده کنی هیچ جوری با دستور if راهی نداره که اول همه رو چک کنه بعد اقدام کنه. در ضمن این موضوع که اولی رو چک میکنه اگه غلط بود دیگه ادامه نمیده به نفع شماست. سرعت برنامتون میره بالا. نمیدونم تونستم جواب بدم یا نه.

ramin149
سه شنبه 27 اردیبهشت 1390, 15:33 عصر
من قبلا درباره حرف شما توضیح دادم که قبلا این کار رو انجام دادم و باید برای 5 تا فیلد حدود 20 خطکد نوشت برای این برنامه ولی اگر یه راحی باشه دیگه این کار لازم نیست و روش شما برای آینده که برنامه را بخواهیم به روزکنیم کلی دردسر داره من خودم یک راه نسبتا بهتر پیدا گردم ولی راه بسیار درستی هم نیست و اون این خط تابع ها رو در خط بالا تعریف کنیم ولی فکر کنم راه بهتری هم وجود داشته باشد

ramin149
سه شنبه 27 اردیبهشت 1390, 15:34 عصر
رامین جان اگه می خوای به قول دوستون این کدا رو توی یه جایی مثل ثبت نام استفاده کنی ترجیحا بهتره که validation بذاری و بعد اعتبار سنجی به صفحه بعد بری و اونجا کاربر اوکی نهایی رو بزنه یه جورایی مثل ثبت نام توی یاهو اگه بخوای این کارو بکنی اصلا به دستور if هم نیاز نیست. خود کنترل validation مانع رفتن به صفحه بعد میشه. اما اگه می خوای حتما از روش خودت استفاده کنی هیچ جوری با دستور if راهی نداره که اول همه رو چک کنه بعد اقدام کنه. در ضمن این موضوع که اولی رو چک میکنه اگه غلط بود دیگه ادامه نمیده به نفع شماست. سرعت برنامتون میره بالا. نمیدونم تونستم جواب بدم یا نه.
ممنون از جوابتون اگر راهی نداره پس هیچی ، گفتم شاید بشه کاریش گرد

volkswagen
سه شنبه 27 اردیبهشت 1390, 15:45 عصر
نه کی گفته برای 5 تا فیلد باید 20 خط کد نوشت؟
روش کار به این صورت هست:



Chr x



If text1="" x=x+"error 1"



If tex2="" x=x+"error 2"



If text3="" x=x+"error 3"



Print x

majnun
چهارشنبه 28 اردیبهشت 1390, 00:26 صبح
من بودم از ولیدیتور های خود دات نت استفاده میکردم ، که نه پست بک بخوره صفحه و نه اینهمه دردسر

فیلدهایی که براتون مهمه حتما پر بشه ولیدیتور میزارین و تا زمانی که درونش اطلاعات نرفته دکمه ثبت فعال نمیشه ....

مشکل دیگه ای هم هست ؟ یا من بد متوجه شدم ؟