نمایش نتایج 1 تا 17 از 17

نام تاپیک: مشکل ورودی Null برای تابع Convert

  1. #1
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    Question مشکل ورودی Null برای تابع Convert

    سلام
    دوستان بنده یه پروسیجر توی دیتابیس نوشتم که عمل درج رو توی یه جدول انجام میده و ....
    یکی از ورودی ها که از نوع عدد هستش رو باید با استفاده از تابع Convert.toInt32 از تکست باکس بخونم و به پروسیجر بفرستم.
    مشکل اینجاس که تکست باکس اگه خالی باشه چون تابع نمیتونه مقدار Null به عنوان ورودی داشته باشه خطا میده.
    اگه بخوام یه if و else برای تموم پارامترهام بنویسم که اگر تکست باکس خالی بود Null در غیر اینصورت استفاده از تابع Convert خیلی جالب نمیشه.
    روش کوتاهی نیس که اینکار رو بکنم؟
    توی ذهنم شکل دیگه ی If هست که از : استفاده میکرد البته اونم اگه جواب بده شکل دستوریش یادم نیس.
    ممنون

  2. #2
    کاربر دائمی آواتار mohammad2407
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    502

    نقل قول: مشکل ورودی Null برای تابع Convert


    var LYSMKWh =
    resultsDT.Rows[currentRow]["LYSMKWh"].Equals(DBNull.Value)
    ? 0
    : Convert.ToInt32(resultsDT.Rows[currentRow]["LYSMKWh"]);


  3. #3
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    نفهمیدم.
    ببینید من میخوام واقعا اگر تکست باکس خالی هست توی دیتابیس هم مقدار فیلد خالی باشه نه صفر

  4. #4
    کاربر دائمی آواتار black_binary
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    شیراز و بندرعباس
    پست
    151

    نقل قول: مشکل ورودی Null برای تابع Convert

    سلام
    convert.toint
    رو خودت توی یک کلاس با هرشرایطی که میخوای، پیاده سازیش کن.
    بعد هنگام کانورت اون کلاس با متد کانورتش رو صدا بزن.


    فقط جلوی مقدار بازگشتی ت یه علامت سوال بذار.

  5. #5
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    من فکر میکنم راه حل ساده تری وجود داشته باشه....
    مشکل رو اینطور بگم شاید بهتر باشه:
    خیلی جاها نیاز هست که از تابع convert که ورودی اون تکست باکسهای فرم هستش استفاده کنیم.منتها مشکل اینه که اگه کاربر متنی داخل اینها ننویسه خطا میده در صورتی که نیاز هست اون تکست باکس خالی باشه.
    چه راهی بدون استفاده از دستور if برای رفع این خطا هست؟
    آخرین ویرایش به وسیله hahaie : سه شنبه 01 دی 1394 در 17:21 عصر

  6. #6
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    به این روش استفاده کردم بازم خطا میده:

    (txt_degree.Text==null) ? null :Convert.ToByte(txt_degree.Text)

    چرا؟چون نوع ها به هم نمیخوره یکی Null اون یکی Byte

  7. #7
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    کسی جواب این مسئله رو نمیدونه؟

  8. #8
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: مشکل ورودی Null برای تابع Convert

    سلام
    اگر بانک شما اسکیوال سرور است شبیه این روش را پیاده سازی کنید :

    public static class ExtensionMethods
    {
    public static string ToText(this string Text)
    {
    if (Text == null)
    return "null";
    return "N'"+ Text +"'";
    }
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 02 دی 1394 در 14:54 عصر

  9. #9
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    نقل قول نوشته شده توسط ASKaffash مشاهده تاپیک
    سلام
    اگر بانک شما اسکیوال سرور است شبیه این روش را پیاده سازی کنید :

    public static class ExtensionMethods
    {
    public static string ToText(this string Text)
    {
    if (Text == null)
    return "null";
    return "N'"+ Text +"'";
    }
    }

    نوع فیلد توی دیتابیس int هست شما اصلا متوجه حرفای من نشدی
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 02 دی 1394 در 14:55 عصر

  10. #10
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: مشکل ورودی Null برای تابع Convert

    سلام
    ممنون از نظر لطف شما گفتم شبیه این کد را برای int به کلاس تزریق کنید

  11. #11
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    یاااااااااااااااااااااااا ااااااااااااااااااااااااا فتم گفتم نیاز به این کارها نیستا گوش نکردید.
    اینطور باید نوشت:برای مثال

    int i=txt_Code.text !="" ? Convert.toInt32(txt_Code.text):(int?)null

  12. #12

    نقل قول: مشکل ورودی Null برای تابع Convert

    اگر هدف کوتاه کردن کد هست کدی که ASKaffash گذاشتند رو اگر اصلاح میکردید به هدف میرسیدید

    public static class ExtentionMethods
    {
    public static int? ToNullableInteger(this string text)
    {
    if (string.IsNullOrEmpty(text))
    return null;
    return Convert.ToInt32(text);
    }
    }

    برای هر تبدیل مورد نیاز یک متد به کلاس بالا اضافه کنید. به صورت زیر هم میتونید استفاده کنید
    int? i = textBox1.Text.ToNullableInteger();

  13. #13
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    نقل قول نوشته شده توسط hahaie مشاهده تاپیک
    یاااااااااااااااااااااااا ااااااااااااااااااااااااا فتم گفتم نیاز به این کارها نیستا گوش نکردید.
    اینطور باید نوشت:برای مثال

    int i=txt_Code.text !="" ? Convert.toInt32(txt_Code.text):(int?)null
    خب این بهتر و ساده تر نیست؟

  14. #14

    نقل قول: مشکل ورودی Null برای تابع Convert

    چون گفتی خیلی جاها به این نوع تبدیلات نیاز داری، بهتر نیست یک متد بنویسی و چندین بار استفاده کنی؟!

  15. #15
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    نمیدونم ولی فکر کنم اگه قرار باشه برا هر تبدیل یه متد نوشته بشه زیاد جالب نباشه.

  16. #16

    نقل قول: مشکل ورودی Null برای تابع Convert

    میتونی از تابع Tryparse لستفاده کنی اگه در زمان تبدیل مشکلی وجود داشته با خودش مقدار صفر برمیگردونه در غیر اینصورت مقدار اصلی رو بر میگردونه
      int Number ;
    int.TryParse("sdfsdf",out Number);
    // Number is 0
    int.TryParse("10", out Number);
    // Number is 10

  17. #17
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: مشکل ورودی Null برای تابع Convert

    نقل قول نوشته شده توسط aliasghar2 مشاهده تاپیک
    میتونی از تابع Tryparse لستفاده کنی اگه در زمان تبدیل مشکلی وجود داشته با خودش مقدار صفر برمیگردونه در غیر اینصورت مقدار اصلی رو بر میگردونه
      int Number ;           int.TryParse("sdfsdf",out Number);             // Number is 0             int.TryParse("10", out Number);             // Number is 10
    نه دوست عزیز نمیخوام مقدارش (اگه خطایی پیش بیاد)صفر باشه میخوایم اگه کاربر هیچی وارد نکرد توی دیتابیس هم Null ذخیره بشه. ولی بازم ممنون چون TryParse رو نمیدونستم.

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: دوشنبه 21 اردیبهشت 1394, 19:01 عصر
  2. سوال: مشکل در استفاده از تابع substr در PHP برای کوتاه کردن متن
    نوشته شده توسط EmRa228 در بخش PHP
    پاسخ: 9
    آخرین پست: جمعه 05 خرداد 1391, 11:59 صبح
  3. مشکل Login کردن برای اولین بار
    نوشته شده توسط BehnamPro در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: چهارشنبه 27 اسفند 1382, 09:45 صبح
  4. ورودی اختیاری برای یک تابع
    نوشته شده توسط FirstLine در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: یک شنبه 30 آذر 1382, 09:11 صبح
  5. اشکال در تابع Convert.ToDateTime
    نوشته شده توسط Erfanian در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 10 شهریور 1382, 14:19 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •