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

نام تاپیک: پیدا کردن بزرگترین آیدی ، وقتی که هیچ رکوردی نیست !

  1. #1

    پیدا کردن بزرگترین آیدی ، وقتی که هیچ رکوردی نیست !

    سلام . من یه کوئری دارم که به این صورت هست . وقتی رکوردی تو جدول نیس خطا می ده . به خاطر همین مجبورم قبل تر از این یه کوئری دیگه بنویسم که چک کنه ببینه ایا در جدول رکوردی هست یا خیر . اگر بیش از یک رکورد وجود داشت MaxID رو پیدا کنه . اما احساس می کنم روش بهتری هم باید وجود داشته باشه . یا به عبارتی یک جای کارم مشکل داره .



    SqlCeConnection conn = new SqlCeConnection(puclicclass.strcon);
    conn.Open();
    SqlCeCommand comm = new SqlCeCommand("SELECT MAX(ID_subgroups ) FROM subgroups where User_Code="+puclicclass.current_user_code.ToString (), conn);
    lastsubgroupcode = (Int32)comm.ExecuteScalar();
    conn.Close()

    آخرین ویرایش به وسیله بیتا حکمت : پنج شنبه 03 اردیبهشت 1394 در 14:34 عصر

  2. #2
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پیدا کردن بزرگترین آیدی ، وقتی که هیچ رکوردی نیست !

    سلام کافیه قبل از این خط :

    lastsubgroupcode = (Int32)comm.ExecuteScalar();


    RecordCount را چک کنید...

    در عیر این صورت با خطای عدم امکان تبدیل null به integer مواجه میشید...

  3. #3
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پیدا کردن بزرگترین آیدی ، وقتی که هیچ رکوردی نیست !

    میتونید یک راه دیگه رو هم امتحان کنید (البته راه قبلی که گفتم بهتره)

    اونم این که این کوئری رو چک کنید و اگر جواب از صفر بیشتر بود کوئری خودتون رو بزنید:

                    SqlCeCommand comm = new SqlCeCommand("SELECT COUNT(ID_subgroups ) FROM subgroups where User_Code="+puclicclass.current_user_code.ToString  (), conn);



  4. #4

    نقل قول: پیدا کردن بزرگترین آیدی ، وقتی که هیچ رکوردی نیست !

    سلام
    اگر از SqlServer استفاده می کردید ، میتونستید با شرط ISNULL مقدار بازگشتی NULL رو چک کنید ، مثل مثال زیر
    SELECT ISNULL(MAX(id),0) AS [Result] FROM TEST


    اما در SqlCE ، این دستور پشتیبانی نمیشه و بجاش میشه به اینصورت انجام داد.
    SELECT (CASE WHEN MAX(id) IS NULL THEN 0 ELSE MAX(id) END) AS [Result] FROM TEST


    در هر دو کوئری ، در صورت NULL بودن نتیجه ، مقدار صفر برمیگردونه که در کوئری در نظر گرفتیم.
    * کوئری های بالا برای فیلدی بنام id در جدول فرضی TEST نوشته شده.


    موفق باشید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  5. #5
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: پیدا کردن بزرگترین آیدی ، وقتی که هیچ رکوردی نیست !

    لزومی نداره که مستقیما مقدار ExecuteScalar رو Cast کنید. میتونید خروجی رو بررسی کنید.

    SqlCeConnection conn = new SqlCeConnection(puclicclass.strcon);
    conn.Open();
    SqlCeCommand comm = new SqlCeCommand("SELECT MAX(ID_subgroups ) FROM subgroups where User_Code="+puclicclass.current_user_code.ToString (), conn);
    object result = comm.ExecuteScalar();
    if (result is int) {
    lastsubgroupcode = (Int32)result;
    }
    else {
    lastsubgroupcode = 0;
    }
    conn.Close()

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

  1. سوال: پیدا کردن بزرگترین زیر رشته مشترک
    نوشته شده توسط fatemeh67 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: دوشنبه 11 آذر 1387, 10:34 صبح
  2. سوال: پیدا کردن بزرگترین تاریخ هر ماه .
    نوشته شده توسط shahram.sys در بخش SQL Server
    پاسخ: 3
    آخرین پست: پنج شنبه 31 مرداد 1387, 23:40 عصر
  3. سوال: پیدا کردن بزرگترین زیر رشته مشترک
    نوشته شده توسط fatemeh67 در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: دوشنبه 10 تیر 1387, 20:34 عصر
  4. پیدا کردن بزرگترین تاریخ
    نوشته شده توسط کاروان پیشه در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: سه شنبه 06 آذر 1386, 01:30 صبح
  5. پیدا کردن بزرگترین مقدار در یک ستون
    نوشته شده توسط mrrajabi در بخش PHP
    پاسخ: 1
    آخرین پست: جمعه 02 شهریور 1386, 18:57 عصر

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

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