Private Sub PurchaseMatid()
Dim d_adap As New SqlDataAdapter("SELECT Pur_id FROM Tl_Purchase", Conn)
Dim d_set As New DataSet
Dim d_table As New DataTable
Dim d_row As DataRow
Dim Pur_String As String 'ตัวแปรเก็บค่าการตัดสตริงเพื่อ Gen ID
d_adap.Fill(d_set, "Pur_id")
d_table = d_set.Tables("Pur_id")
If d_set.Tables("Pur_id").Rows.Count = 0 Then 'เช็คว่ามีIDใน database ไหมถ้าไม่ Gen Auto ให้เป็น 001
TxtPurMatid.Text = "Pur0000001"
Else
For Each d_row In d_table.Rows
Pur_String = Mid(d_row.Item("Pur_id"), 7, 10) + 1 'ตัวสตริงจาก Datarow ที่คิวรี่ออกมาได้
If Pur_String.Length = 1 Then 'เช็คว่าขนาดความยาวตัวอักษรมีกี่หลัก
TxtPurMatid.Text = "Pur000000" + Pur_String
ElseIf Pur_String.Length = 2 Then
TxtPurMatid.Text = "Pur00000" + Pur_String
ElseIf Pur_String.Length = 3 Then
TxtPurMatid.Text = "Pur0000" + Pur_String
ElseIf Pur_String.Length = 4 Then
TxtPurMatid.Text = "Pur000" + Pur_String
ElseIf Pur_String.Length = 5 Then
TxtPurMatid.Text = "Pur00" + Pur_String
ElseIf Pur_String.Length = 6 Then
TxtPurMatid.Text = "Pur0" + Pur_String
ElseIf Pur_String.Length = 7 Then
TxtPurMatid.Text = "Pur" + Pur_String
End If
Next
End If
End Sub
Private Const constPurchaseIDPrefix As String = "PUR"
Private Const constPurchaseCounterFormatPattern As String = "000000"
'Overload for common usage
Private Function GetPurchaseMatid() As String
Return GetPurchaseMatid(DateTime.Now)
End Function
Private Function GetPurchaseMatid(ByVal RefDateTime As DateTime) As String
Dim datePartStr As String = RefDateTime.ToString("dd/MM/yyyy")
'Dicut only counter and if no record founded it's alway convert to 0
Dim retStr As String = String.Format("SELECT ISNULL(MAX(SUBSTRING([Pur_ID],{0},LENGTH([Pur_ID])-{1} )),0) FROM [Tl_Purchase]" _
, constPurchaseIDPrefix.Length, datePartStr.Length)
Dim d_command As SqlCommand = New SqlCommand(retStr, conn)
Dim PurchaseCounter As Integer = 0
Try
conn.Open()
retStr = d_command.ExecuteScalar().ToString()
PurchaseCounter = Convert.ToInt32(retStr) + 1
retStr = String.Format("{0}{1}{2}", constPurchaseIDPrefix _
, PurchaseCounter.ToString(constPurchaseCounterFormatPattern) _
, datePartStr)
Catch 'ex As Exception
retStr = "#ERROR"
End Try
Return retStr
End Function
ใช่ค่ะ ใช่ SQL2000 ค่ะ มัน เบรดแล้วขึ้นเออเล่อร์ว่า Additional information: 'LENGTH' is not a recognized function name. เหมือนว่าโอ๋ต้องไปเปลี่ยนประเภทของข้อมูลหรือ ฟังก์ชั่น Length มันไม่ support ค่ะ (ส่วนอันนี้ โอ๋ลองแก้มั่วๆไปก่อนนะค่ะ )ขอบคุณค่ะ