sql server2008 จะกำหนด id เป็น pk โดยที่มี 4 หลัก เริ่มจาก 0001...
smallint (4)
Date :
2011-08-29 20:48:18
By :
slurpee55555
เก็บปกติก็ได้ครับ ตอนแสดงผลค่อยใส่ 000 ให้ครับ
Date :
2011-08-29 20:54:20
By :
webmaster
smallint มันใส่ () ได้ด้วยหรอครับ ใส่แล้วมันไม่ขึ้นอะครับ
พอดี user ต้องการเก็บเป็นแบบนี้อะครับ
Date :
2011-08-29 21:15:28
By :
SPIRITT
ทดลองสร้างฐานข้อมูลใช้ชื่อตารางว่า TblId และมีรายละเอียดดังนี้
จากนั้นเขียนการ Select ตามนี้ดู
SQL Server 2005
declare @LastId int
set @LastId = (select isnull(max(cast(Id as int)), 0) + 1 from TblId)
select replicate('0', 4 - len(@LastId)) + cast(@LastId as varchar) as Id
ลองใส่ข้อมูลดูว่าใช่อย่างที่ต้องการมั้ยนะครับ
Date :
2012-01-07 21:22:15
By :
gunnermontana
ในกรณีที่ถ้าเก็บเป็นแบบ int เวลาจะแสดงค่าให้ user เห็น 0001
สมมุติเราได้ตัวเลขมา เป็น 1 จาก database
ก็เอา ค่าที่ได้มา +10000
แล้วก็ .substring(1,4) ก็จะได้ 0001
ตย
Code (C#)
string sqlNewID;
sqlNewID = " SELECT * ";
sqlNewID += " FROM Sale";
SqlDataReader dr;
com = new SqlCommand();
com.CommandType = CommandType.Text;
com.CommandText = sqlNewID;
com.Connection = Conn;
dr = com.ExecuteReader();
if (dr.HasRows)
{
DataTable dtNewID = new DataTable();
dtNewID.Load(dr);
string ID;
int ReciveID;
ID = dtNewID.Rows[0]["SaleID"].ToString();
ReciveID = 10001 + Convert.ToInt32(SQLSaleID.Substring(1, 4));
txtSaleID.Text = ReciveID.ToString();
}
else
{
txtSaleID.Text =0001;
}
dr.Close();
ถ้าเก็บแบบ varchar ก้ตามพี่ Gunner เลยครับ
ประวัติการแก้ไข 2012-05-26 09:17:57
Date :
2012-05-26 09:08:38
By :
SeedNew
Load balance : Server 00