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

نام تاپیک: تابع ایجاد شماره افزایشی

  1. #1
    کاربر تازه وارد آواتار jprogramer
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زیر آسمان شهر
    پست
    31

    تابع ایجاد شماره افزایشی

    با سلام خدمت دوستان
    یه تابع تو همین سایت پیدا کردم که ازش واسه شماره فاکتور استفاده میکنم اما و قتی تا عدد 10 شماره تولید میکنه دیگه شماره بعدی رو یعنی عدد11 به بعد رو تولید نمیکنه .اگه کسی از دوستان راهنمایی بکنه ممنون میشم.
    در ضمن اسم جدولم foroosh و اسم فیلدم تو جدول factorno هستش
    private void factor_number();
    {
    SqlConnection con = new SqlConnection(strcon);
    SqlCommand cmd = new SqlCommand("Select Max(factorno) From foroosh", con);
    if (con.State == ConnectionState.Open)
    con.Close();
    con.Open();
    long InvoiceNumber;
    if (cmd.ExecuteScalar() != DBNull.Value)
    InvoiceNumber = Convert.ToInt64(cmd.ExecuteScalar());
    else
    InvoiceNumber = 0;
    con.Close();
    lblfactorno.Text = (InvoiceNumber + 1).ToString();
    }

  2. #2
    کاربر دائمی آواتار ParsaNM
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    جايي در تهران
    پست
    167

    نقل قول: تابع ایجاد شماره افزایشی

    دوست عزيز نمي دونم تابعت چي هست .. ولي معمولا اگر روش به اين صورت باشه که بزرگترين عدد رو بدست مياره و بعلاوه يکش ميکنه ، معمولي ترين اشتباهي که باعث ميشه مشکل شما ايجاد بشه اينه که نوع خروجيت يا فيلدت عددي نيست ...! در اين صورت بهتره cast بشه ..!
    اگر کدت رو ببينم شايد بهتر بتونم راهنمايي کنم ..!

  3. #3
    کاربر تازه وارد آواتار jprogramer
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زیر آسمان شهر
    پست
    31

    نقل قول: تابع ایجاد شماره افزایشی

    سلام کد رو که واستون گذاشتم و به این صورت عمل میکنه هر بار که تابع فراخوانی میشه با مراجعه به جدول foroosh بزرگترین مقدار فیلد factorno را پیدا میکنه و اونو با عدد یک جمع میزنه

  4. #4
    کاربر دائمی
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    38
    پست
    1,104

    نقل قول: تابع ایجاد شماره افزایشی

    نوع فیلدتون چیه؟ و اینکه بعد از عدد 10 خروجی اون Execute scaler چی میشه؟

  5. #5
    کاربر تازه وارد آواتار jprogramer
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زیر آسمان شهر
    پست
    31

    نقل قول: تابع ایجاد شماره افزایشی

    نوع فیلدم( nchar(10 هستش و بعد از 10 دوباره خود عدد 10 تکرار میشه

  6. #6
    کاربر تازه وارد آواتار jprogramer
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زیر آسمان شهر
    پست
    31

    نقل قول: تابع ایجاد شماره افزایشی

    کسی نیست جوابمو بده

  7. #7
    کاربر تازه وارد آواتار jprogramer
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زیر آسمان شهر
    پست
    31

    نقل قول: تابع ایجاد شماره افزایشی

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

  8. #8
    کاربر دائمی
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    38
    پست
    1,104

    نقل قول: تابع ایجاد شماره افزایشی

    ببین دوست عزیز شما چون نوع اون فیلدتون nchar همیشه max رو 9 میگیره و واسه همین 10 برمیگردونه .. چون مقایسه رشته ای انجام میده و نه عددی و تو مقایسه رشته ای چون عدد سمت چپ 10 ، یکه اون رو از 9 کوچیکتر میدونه. یعنی تو مقایسه رشته ای به ترتیب از کاراکتر سمت چپ شروع میکنه و هرکدوم بزرگتر بود رو برمیگردونه..
    حالا یا باید کلا نوع ستونت رو int بذاری (که به نظرم این بهتره واسه اینکه فیلد آیدی شمازشی نباید nchar باشه) یا اینکه کوئری که واسه max گرفتن مینویسی رو اینجوری تغییر بدی Select Max(factorno + 0) From foroosh
    اینجوری مقایسه عددی انجام میده

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

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