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,036

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



 

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

 



Topic : 129066



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



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




ขอคำแนะนำหน่อยครับ พอดีผมต้องการ Auto ID สำหรับรันเลขเอกสารอ้างอิง แล้วมันต้องมีทั้งตัวหนังสือ-เดือน-ตัวเลข ปนกันอยู่
Code (VB.NET)
    Private Sub AutoGenerateTranID()
        Dim sqlTmp As String = ""
        Dim comTmp As OleDbCommand = New OleDbCommand
        Dim drTmp As OleDbDataReader
        Dim tmpTransID As Integer = 0

        sqlTmp = "SELECT TOP 1 TransID FROM Borrow ORDER BY TransID DESC"

        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConn
            .Open()
        End With

        Try
            With comTmp
                .CommandType = CommandType.Text
                .CommandText = sqlTmp
                .Connection = Conn
                drTmp = .ExecuteReader()

                drTmp.Read()

                tmpTransID = CInt(CStr((drTmp.Item("TransID"))))
                tmpTransID = tmpTransID + 1
                LastTransID = tmpTransID.ToString("0000000")
            End With
        Catch
            LastTransID = "0000001"
        End Try
        drTmp.Close()
    End Sub


ซึ่งผมลองใช้แค่ตัวหนังสือกับตัวเลขปนกันแล้วมันใช้ไม่ได้เลยครับ
Code (VB.NET)
                tmpTransID = CInt(CStr((drTmp.Item("TransID"))))
                tmpTransID = tmpTransID + 1
                LastTransID = tmpTransID.ToString("IT00000")
            End With
        Catch
            LastTransID = "IT00001"
        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 : 2329 Reply : 11
 

 

No. 1



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



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


ค่ามันซ้ำกันครับ PK ค่าไม่ควรซ้ำ






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


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 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



โพสกระทู้ ( 122 )
บทความ ( 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



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



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


ลองดูครับผมใช้อยู่ ก็โอเคครับ
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
 


 

No. 11



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



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


ตอบความคิดเห็นที่ : 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
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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