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

نام تاپیک: خطای Object cannot be cast from DBNull to other types.

  1. #1
    کاربر دائمی آواتار hadi vafaii
    تاریخ عضویت
    دی 1392
    محل زندگی
    کرج
    پست
    316

    خطای Object cannot be cast from DBNull to other types.

    سلام عرض می کنم خدمت اساتید محترم
    بنده با استفاده از کد بزرگترین مقدار موجود در دیتابیس رو بدست میارم و مثبت یک میکنم
     public static int mosbat1()
    {

    int a;

    OleDbConnection con = DB.conection();
    OleDbCommand com = new OleDbCommand("select max(ID) from tbl1", con);
    con.Open();
    a =Convert.ToInt32( com.ExecuteScalar());
    a = a + 1;
    return a;

    }


    #endregion


    اما وقتی دیتابیس خالیه این خطا رو میده
    Object cannot be cast from DBNull to other types.

    چجوری میتونم مقدار اولیه بهش بدم تا اگه فیلد دیتابیس خالی بود اونو برابر صفر قرار بده

  2. #2
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: خطای Object cannot be cast from DBNull to other types.

    سلام مشکل مربوط به مقدار NULL برگشت داده شده توسط
    com.ExecuteScalar()

    دلیلش میتونه جدول فاقد رکوردی باشه.شما ابتدا تعداد رکوردهای جدول رو بدست بیار اگر صفر بود دستی Max رو تعیین اگرم بزرگتر از صفر بود آنگاه کویری گرفتن Max ID رو اجرا کن.
    با ست کردن DefaultValue برای فیلد مورد نظر در SqlServer
    First,solve the problem then write the code

  3. #3
    کاربر دائمی آواتار hadi vafaii
    تاریخ عضویت
    دی 1392
    محل زندگی
    کرج
    پست
    316

    نقل قول: خطای Object cannot be cast from DBNull to other types.

    سلام میدونم به دلیل خالی بودن فیلد این خطا رو میگیره اما برای اینکه اگه خالی بود فیلد اونو برابر صفر قرار بده چی کار باید بکنم ؟ مقدار اولیه از داخل دیتابیس صفر میدم اما باز خطا میگیره
    بعد یه سوال دیگه اینکه این تابع بزرگترین مقدار را برمیگردونه یا آخرین رکورد ثبت شده را

  4. #4
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: خطای Object cannot be cast from DBNull to other types.

    شما دوست گرامی اگر فیلد ID شما در جدول tbl1 حالت Auto Increament رو فعال باشه نمشه مقدار کلید رو تغییر داد(خود sql مدیریت کلید اصلی رو برعهده میگیره).وچون کلید هست نمی تواند خالی باشد.شما موقع Insert نیاز به پر کردن کلید اصلی داری اونم با خوندن Max ID ویه واحد اضافه کردن بدست میاد.الان کد شما قبل از چک کردن Max ID تعداد رکوردها رو بخون اگر صفر بود 1 روreturn داده شود اگر بزرگتر از 1 بود آنگاه Max ID جدول ذو بخون باضافه 1 کن و مقدار رو return کن
    First,solve the problem then write the code

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

  1. سوال: خطای value cannot be null
    نوشته شده توسط afi_program در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 26 مرداد 1394, 18:20 عصر
  2. خطای ActionBarActivity cannot be resolved to a type
    نوشته شده توسط peymanf11 در بخش Android Studio
    پاسخ: 0
    آخرین پست: یک شنبه 12 مرداد 1393, 17:15 عصر
  3. سوال: خطای startIndex cannot be larger than length of string.
    نوشته شده توسط bftarane در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: یک شنبه 08 بهمن 1391, 12:55 عصر
  4. سوال: منشاء خطای Provider cannot be found. It may not be properly installed
    نوشته شده توسط هواشناس در بخش Classic ASP
    پاسخ: 1
    آخرین پست: سه شنبه 01 فروردین 1391, 12:48 عصر
  5. پاسخ: 2
    آخرین پست: شنبه 13 آذر 1389, 16:57 عصر

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

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