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

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

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

به این سوال امتیاز بدهید    ‎−1
تعداد بازدید این سوال : 4195
پاسخ دهنده : 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
امتیاز: 1617 رتبه: 2
5 نظر
abbas : سلام ممنون بابت راهنمایی میشه در مورد کد بالا بیشتر توضیح بدید که باید کجا استفاده کنم

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

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

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

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

امتیاز کاربر : ‎−1   رتبه کاربر : 7057   تاریخ ثبت : 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   رتبه کاربر : 7057   تاریخ ثبت : 08:46 1399/11/09
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود