PDA

View Full Version : سوال: فیلد Autonumber با فرمت خاص



firoozi90
دوشنبه 18 آذر 1392, 07:44 صبح
سلام دوستان
من میخوام یکی از فیلدهای جدولم که فیلد ID هستش را با یک فرمت خاص بصورت autonumber تعریف کنم مثلا:
9209000
که از سمت چپ دو رقم اول سال جاری
دو رقم بعد ماه جاری
و سه رقم آخر اعدادی هستند که باید یک به یک اضافه بشند
مثلا بعدی بشه 9209001
9209002
.
.
و ماه بعدی بشه
9210003
و الی آخر

ممنون میشم دوستان عزیز یک راه پیش پام بگذارند
مرسی

ak0100
دوشنبه 18 آذر 1392, 11:35 صبح
سلام من که تا حالا چنین فیلدی ندیدم

باید خودت یه تابع یا کلاس درست کنی

firoozi90
دوشنبه 18 آذر 1392, 11:40 صبح
سلام من که تا حالا چنین فیلدی ندیدم

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

ak0100
دوشنبه 18 آذر 1392, 13:18 عصر
اول باید آخرین مقدار ذخیره شده در دیتابیس رو بدست بیاری
بعد اونو از چپ به راست تجزیه کنی یعنی اول سال بعد ماه و بقیش هم که شماره هست
وقتی شماره رو بدست آوردی به int تبدیل کن و یکی بهش اضافه کن i++
در آخر هم همه رو ترکیب کن و ذخیره !. . . . . :لبخندساده:

firoozi90
دوشنبه 18 آذر 1392, 14:24 عصر
اینجوری که شما می گید اشتباه هست
پس تکلیف فیلد های ماه و سال جاری چی مشه

firoozi90
چهارشنبه 20 آذر 1392, 07:20 صبح
خواهشا کسی اگر می دونه جواب بده

SEPIDEYESHAB
چهارشنبه 20 آذر 1392, 11:30 صبح
با سلام ، اول سال و ماه جاری رو بدست بیار و با کورئی زیر را درست کن


search_val = sal + mah;
SELECT MAX (field_name) AS mx FROM table_name WHERE (field_name like('search_val%'))



اگر مقداری برگشت داده شد یکی بهش اضافه کن و ذخیره کن و اگر مقداری بر نگشت پس برای این سال و ماه چیزی ثبت نشده و sal+mah+0000 را انتخاب کن

khokhan
چهارشنبه 20 آذر 1392, 23:49 عصر
خواهشا کسی اگر می دونه جواب بده

واین هم با استفاده از معماری EF:لبخند:

public void getcode()
{
string Year, Month;

PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
DateTime date = DateTime.Now;
Year= (pc.GetYear(date).ToString("00"));
Month = (pc.GetMonth(date).ToString("00"));
//
var query = from a in db.zirna select a;
foreach (var item in query)
{
string code = Convert.ToString(item.session_code);

int ctr;
string S_ROLLNO;

S_ROLLNO = code.Substring(code.Length -3);
ctr = Convert.ToInt16(S_ROLLNO);
{
ctr = ctr + 1;

Year = Year.Substring(Year.Length - 2);
label1.Text = Year +Month+ ctr;

}
}



}
.................................................. .........:لبخند:
113808