دسته بندی ها
17:13 1399/11/05

ایجاد شماره نامه در سی شارپ با فرمول خاص

مشخصات سوال کننده :
کاربر : abbas     امتیاز کاربر : ‎−1     رتبه کاربر : 7100
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    ‎−1
تعداد بازدید این سوال : 4240
هوش مصنوعی

پاسخ هوش مصنوعی

شما می توانید با استفاده از یک حلقه و متغیرهای مناسب شماره نامه ها را در سی شارپ ایجاد کنید. در اینجا یک مثال ساده از چگونگی ایجاد شماره نامه با فرمت مورد نظر ارایه می شود:

using System;

class Program
{
    static void Main()
    {
        string prefix = "DEC-";
        int startingNumber = 1;
        int totalNumbers = 10; // تعداد شماره هایی که می خواهید ایجاد کنید.

        for (int i = 0; i < totalNumbers; i++)
        {
            string documentNumber = prefix + (startingNumber + i).ToString("D2");
            Console.WriteLine(documentNumber);
        }
    }
}

در این کد، `prefix` متغیر برای ذخیره پیشوند شماره نامه است و `startingNumber` شماره اولیه را تعیین می کند. با استفاده از یک حلقه `for`، شماره نامه ها و فرمت مورد نظر (`DEC-01`, `DEC-02`, و غیره) تولید می شوند.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 19:10 1399/11/06

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

فرض می کنیم که ابتدای همه شماره سریال های شما با DEC شروع میشه. بنابراین این عبارت یک عبارت ثابت هست و نیازی نیست توی دیتابیس ذخیره بشه و میتونید توی پروژه خودتون به راحتی به هر شماره ای بچسبونید.

خب قسمت دوم هم یک عدد هست که یکی یکی قراره افزایش پیدا کنه. بنابراین کافیه یک فیلد از نوع Identity توی دیتابیس تعریف کنید که از 1 شروع بشه و مقدارش یکی یکی افزایش پیدا کنه.

افزایش یکی یکی شماره سریال در Sql server

 

در تصویر بالا فیلد SerialNo به صورت int و Identity تغریف شده و مقدارش از 1 شروع میشه و 1 واحد 1 واحد افزایش پیدا میکنه. خب شما به راحتی میتونید این مقدار رو از دیتابیس بخونید و نمایش بدید.

کدهای سی شارپ

string serialNo = "DEC" + item.SerialNo;

*در کد بالا item مقداری هست که از دیتابیس خونده میشه.*

ویرایش شده در دوشنبه 27 بهمن 1399 ساعت 11:18:06
به این پاسخ امتیاز بدهید    2
امتیاز: 1635 رتبه: 2
5 نظر
abbas : سلام ممنون بابت راهنمایی میشه در مورد کد بالا بیشتر توضیح بدید که باید کجا استفاده کنم

امتیاز کاربر : ‎−1   رتبه کاربر : 7100   تاریخ ثبت : 11:33 1399/11/07
saedbfd : کدی که نوشته شده رو باید توی سی شارپ بنویسید. جایی که شماره نامه رو از دیتابیس میخونید رشته "DEC" هم بهش بچسبونید.

امتیاز کاربر : 1664   رتبه کاربر : 1   تاریخ ثبت : 01:53 1399/11/08
abbas : من میخوام در asp.net.core استفاده کنم

امتیاز کاربر : ‎−1   رتبه کاربر : 7100   تاریخ ثبت : 03:27 1399/11/08
fateme : فرقی نمیکنه. Asp core هم با سی شارپ هست. شما میدونی چجوری باید اطلاعات رو توی Core از دیتابیس بخونی ؟

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 04:52 1399/11/08
abbas : با سلام من میخوام با همون فرمت در دیتابیس ثبت بشه

امتیاز کاربر : ‎−1   رتبه کاربر : 7100   تاریخ ثبت : 05:22 1399/11/08
ادامه نظرات ...
پاسخ دهنده : mohammad-i 23:26 1399/11/08

برای این کار شما نمیتونید از فیلد Identity استفاده کنید. چون فیلد identity فقط عدد رو قبول میکنه.

اگه حتما اصرار دارید که حرف و عدد با هم به عنوان آیدی ذخیره بشن، باید به این روش عمل کنید:

1- نوع فیلد آیدی را استرینگ در نظر بگیرید

2- هربار قبل از ثبت رکورد جدید، آخرین رکورد ثبت شده توی دیتابیس رو فراخوانی کنید و ببینید آیدی اون چیه

3- یه عدد به آخرین آیدی اضافه کنید و رکورد جدید رو ذخیره کنید.

نکته : سعی کنید از فیلدهای رشته ای برای Identity استفاده نکنید. توی سرعت و Performance تاثیر منفی داره.

ویرایش شده در پنج شنبه 9 بهمن 1399 ساعت 00:08:09
به این پاسخ امتیاز بدهید    0
امتیاز: 260 رتبه: 7
1 نظر
abbas : ممنون

امتیاز کاربر : ‎−1   رتبه کاربر : 7100   تاریخ ثبت : 08:46 1399/11/09
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود