 |
|
[VB.NET] ขอคำแนะนำเรื่องการทำ Auto ID ที่มีตัวอักษร-เลขเดือน-ตัวเลข หน่อยครับ |
|
 |
|
|
 |
 |
|
ค่ามันซ้ำกันครับ PK ค่าไม่ควรซ้ำ
|
 |
 |
 |
 |
Date :
2017-10-03 16:13:59 |
By :
OOP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูตัวนี้ครับ

.NET สร้าง Auto ID Number ใช้สำหรับ Order ID หรือ Member ID รหัสลำดับ
|
 |
 |
 |
 |
Date :
2017-10-05 11:11:02 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
ประวัติการแก้ไข 2017-10-16 09:34:12
 |
 |
 |
 |
Date :
2017-10-16 09:24:29 |
By :
outhai |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลอง Debug ดูมั้ยครับ แล้วดูว่าได้ค่าอะไร
|
 |
 |
 |
 |
Date :
2017-10-16 12:00:05 |
By :
Da_che |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูครับผมใช้อยู่ ก็โอเคครับ
Code (VB.NET)
Function AutoQTNo() As String
OpenDatabase()
ConnectionDatabase()
Dim SvrDate As DateTime = DateTime.Now
Dim CmdAuto As New SqlCommand("SELECT SBAQTCode FROM SBAQT WHERE (SUBSTRING(SBAQTCode,1,5)='SBA01') AND (SUBSTRING(SBAQTCode,6,2)=RIGHT(YEAR(GETDATE()),2)) ORDER BY SBAQTCode DESC", Connt)
If CmdAuto.Connection.State = ConnectionState.Open Then CmdAuto.Connection.Close()
CmdAuto.Connection.Open()
Dim DrAuto As SqlDataReader
DrAuto = CmdAuto.ExecuteReader
DrAuto.Read()
If DrAuto.HasRows = True Then
Return "SBA01" & Format(SvrDate, "yy") & Format(CDbl(Microsoft.VisualBasic.Right(DrAuto("SBAQTCode"), 4)) + 1, "0000")
Else
Return "SBA01" & Format(SvrDate, "yy") & "0001"
End If
DrAuto = Nothing
CmdAuto.Connection.Close()
CmdAuto.Dispose()
End Function
= SBA01170001 ในนี้จะมีแค่ค่าของปีคือ 17 ส่วนวันที่และเดือนก็ลองทำดูนะครับ
|
ประวัติการแก้ไข 2017-10-19 11:19:48
 |
 |
 |
 |
Date :
2017-10-19 11:17:10 |
By :
outhai |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 10 เขียนโดย : outhai เมื่อวันที่ 2017-10-19 11:17:10
รายละเอียดของการตอบ ::
ผมทำอย่างงี้ถูกไหมครับ
Code (VB.NET)
Private Sub AutoGenerateTranID()
Dim SvrDate As Date = Date.Now
Dim CmdAuto As New OleDbCommand("SELECT TransID FROM Borrow WHERE (SUBSTRING(TransID,1,2)='IT') AND (SUBSTRING(TransID,6,2)=RIGHT(MONTH(GETDATE()),2)) ORDER BY TransID DESC", Conn)
If CmdAuto.Connection.State = ConnectionState.Open Then CmdAuto.Connection.Close()
CmdAuto.Connection.Open()
Dim DrAuto As OleDbDataReader
DrAuto = CmdAuto.ExecuteReader
DrAuto.Read()
If DrAuto.HasRows = True Then
Return = "IT" & Format(SvrDate, "MM") & Format(CDbl(Microsoft.VisualBasic.Right(CStr(DrAuto("TransID")), 4)) + 1, "0000")
Else
Return "IT" & Format(SvrDate, "MM") & "0001"
End If
DrAuto = Nothing
CmdAuto.Connection.Close()
CmdAuto.Dispose()
End Sub
แต่มันขึ้น Error Correction ที่บรรทัด 10 กับ 12 นะครับ ควรจะแก้เป็นอะไรดีครับ
|
ประวัติการแก้ไข 2017-10-19 13:00:27
 |
 |
 |
 |
Date :
2017-10-19 12:59:52 |
By :
ford24832 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|