Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > .NET Framework > Forum > [VB.NET] ขอคำแนะนำเรื่องการทำ Auto ID ที่มีตัวอักษร-เลขเดือน-ตัวเลข หน่อยครับ


 

[.NET] [VB.NET] ขอคำแนะนำเรื่องการทำ Auto ID ที่มีตัวอักษร-เลขเดือน-ตัวเลข หน่อยครับ

 
Topic : 129066



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์



ขอคำแนะนำหน่อยครับ พอดีผมต้องการ Auto ID สำหรับรันเลขเอกสารอ้างอิง แล้วมันต้องมีทั้งตัวหนังสือ-เดือน-ตัวเลข ปนกันอยู่
Code (VB.NET)
01.Private Sub AutoGenerateTranID()
02.    Dim sqlTmp As String = ""
03.    Dim comTmp As OleDbCommand = New OleDbCommand
04.    Dim drTmp As OleDbDataReader
05.    Dim tmpTransID As Integer = 0
06. 
07.    sqlTmp = "SELECT TOP 1 TransID FROM Borrow ORDER BY TransID DESC"
08. 
09.    With Conn
10.        If .State = ConnectionState.Open Then .Close()
11.        .ConnectionString = strConn
12.        .Open()
13.    End With
14. 
15.    Try
16.        With comTmp
17.            .CommandType = CommandType.Text
18.            .CommandText = sqlTmp
19.            .Connection = Conn
20.            drTmp = .ExecuteReader()
21. 
22.            drTmp.Read()
23. 
24.            tmpTransID = CInt(CStr((drTmp.Item("TransID"))))
25.            tmpTransID = tmpTransID + 1
26.            LastTransID = tmpTransID.ToString("0000000")
27.        End With
28.    Catch
29.        LastTransID = "0000001"
30.    End Try
31.    drTmp.Close()
32.End Sub


ซึ่งผมลองใช้แค่ตัวหนังสือกับตัวเลขปนกันแล้วมันใช้ไม่ได้เลยครับ
Code (VB.NET)
1.        tmpTransID = CInt(CStr((drTmp.Item("TransID"))))
2.        tmpTransID = tmpTransID + 1
3.        LastTransID = tmpTransID.ToString("IT00000")
4.    End With
5.Catch
6.    LastTransID = "IT00001"
7.End Try

มันขึ้นว่า
ภาพประกอบเออเร่อ
รบกวนขอคำแนะนำจากผู้เชี่ยวชาญหน่อยครับ



Tag : .NET, Ms Access, Win (Windows App), VB.NET



ประวัติการแก้ไข
2017-10-02 12:57:06
2017-10-03 10:42:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-10-02 09:14:26 By : ford24832 View : 2443 Reply : 11
 

 

No. 1



โพสกระทู้ ( 317 )
บทความ ( 0 )



สถานะออฟไลน์


ค่ามันซ้ำกันครับ PK ค่าไม่ควรซ้ำ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-03 16:13:59 By : OOP
 

 

No. 2



โพสกระทู้ ( 74,059 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองดูตัวนี้ครับ



.NET สร้าง Auto ID Number ใช้สำหรับ Order ID หรือ Member ID รหัสลำดับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-05 11:11:02 By : mr.win
 

 

No. 3



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : OOP เมื่อวันที่ 2017-10-03 16:13:59
รายละเอียดของการตอบ ::
มันไม่ยอมบวก 1 อะครับ เช็คฐานข้อมูลแล้ว PK ก็ไม่ได้ซ้ำกัน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-05 12:13:38 By : ford24832
 

 

No. 4



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2017-10-05 11:11:02
รายละเอียดของการตอบ ::
ผมใช้ฐานข้อมูลของ Access อะครับ จะต้องดัดแปลงโค้ดเป็นอย่างไรบ้างครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-05 12:14:10 By : ford24832
 

 

No. 5



โพสกระทู้ ( 280 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : ford24832 เมื่อวันที่ 2017-10-05 12:14:10
รายละเอียดของการตอบ ::
แนะนำให้เช็ค ตามขั้นตอนนี้นะ

1. สามารถเช็คได้ว่ามีแถวใน ตารางหรือไม่
2. สามารถเช็คได้ว่า ค่า max มีค่าเท่าไหร่
3. นำค่า max มาตัด perfix และ +1 ได้ออกมาเท่าไหร่

ลองเช็คตามที่ว่ามาก่อน เดี๋ยวจะบอกอีกทีว่าจะไปยังไง



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-05 12:34:08 By : g
 

 

No. 6



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : g เมื่อวันที่ 2017-10-05 12:34:08
รายละเอียดของการตอบ ::
พอจะมีวิธีเช็คไหมครับ ผมมือใหม่หัดเขียนเลยเช็คไม่เป็นเลยคครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-16 08:38:03 By : ford24832
 

 

No. 7



โพสกระทู้ ( 124 )
บทความ ( 0 )



สถานะออฟไลน์





ประวัติการแก้ไข
2017-10-16 09:34:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-16 09:24:29 By : outhai
 

 

No. 8



โพสกระทู้ ( 280 )
บทความ ( 0 )



สถานะออฟไลน์


ลอง Debug ดูมั้ยครับ แล้วดูว่าได้ค่าอะไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-16 12:00:05 By : Da_che
 

 

No. 9



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : Da_che เมื่อวันที่ 2017-10-16 12:00:05
รายละเอียดของการตอบ ::

Exception:Thrown: "Input string was not in a correct format." (System.FormatException)
A System.FormatException was thrown: "Input string was not in a correct format."

Exception:Caught: "Conversion from string "IT00005" to type 'Integer' is not valid." (System.InvalidCastException)
A System.InvalidCastException was caught: "Conversion from string "IT00005" to type 'Integer' is not valid."

ขึ้นอย่างงี้ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-19 10:23:45 By : ford24832
 

 

No. 10



โพสกระทู้ ( 124 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูครับผมใช้อยู่ ก็โอเคครับ
Code (VB.NET)
01.Function AutoQTNo() As String
02.       OpenDatabase()
03.       ConnectionDatabase()
04.       Dim SvrDate As DateTime = DateTime.Now
05.       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)
06.       If CmdAuto.Connection.State = ConnectionState.Open Then CmdAuto.Connection.Close()
07.       CmdAuto.Connection.Open()
08.       Dim DrAuto As SqlDataReader
09.       DrAuto = CmdAuto.ExecuteReader
10.       DrAuto.Read()
11.       If DrAuto.HasRows = True Then
12.           Return "SBA01" & Format(SvrDate, "yy") & Format(CDbl(Microsoft.VisualBasic.Right(DrAuto("SBAQTCode"), 4)) + 1, "0000")
13.       Else
14.           Return "SBA01" & Format(SvrDate, "yy") & "0001"
15.       End If
16.       DrAuto = Nothing
17.       CmdAuto.Connection.Close()
18.       CmdAuto.Dispose()
19.   End Function


= SBA01170001 ในนี้จะมีแค่ค่าของปีคือ 17 ส่วนวันที่และเดือนก็ลองทำดูนะครับ


ประวัติการแก้ไข
2017-10-19 11:19:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-19 11:17:10 By : outhai
 

 

No. 11



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : outhai เมื่อวันที่ 2017-10-19 11:17:10
รายละเอียดของการตอบ ::
ผมทำอย่างงี้ถูกไหมครับ

Code (VB.NET)
01.Private Sub AutoGenerateTranID()
02.    Dim SvrDate As Date = Date.Now
03.    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)
04.    If CmdAuto.Connection.State = ConnectionState.Open Then CmdAuto.Connection.Close()
05.    CmdAuto.Connection.Open()
06.    Dim DrAuto As OleDbDataReader
07.    DrAuto = CmdAuto.ExecuteReader
08.    DrAuto.Read()
09.    If DrAuto.HasRows = True Then
10.        Return = "IT" & Format(SvrDate, "MM") & Format(CDbl(Microsoft.VisualBasic.Right(CStr(DrAuto("TransID")), 4)) + 1, "0000")
11.    Else
12.        Return "IT" & Format(SvrDate, "MM") & "0001"
13.    End If
14.    DrAuto = Nothing
15.    CmdAuto.Connection.Close()
16.    CmdAuto.Dispose()
17.End Sub

แต่มันขึ้น Error Correction ที่บรรทัด 10 กับ 12 นะครับ ควรจะแก้เป็นอะไรดีครับ



ประวัติการแก้ไข
2017-10-19 13:00:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-19 12:59:52 By : ford24832
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [VB.NET] ขอคำแนะนำเรื่องการทำ Auto ID ที่มีตัวอักษร-เลขเดือน-ตัวเลข หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่