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

Registered : 102,402




HOME > บทความจากสมาชิก > .NET สร้าง Auto ID Number ใช้สำหรับ Order ID หรือ Member ID รหัสลำดับต่างๆ โดยมีอักษร (VB.Net, C#)

.NET สร้าง Auto ID Number ใช้สำหรับ Order ID หรือ Member ID รหัสลำดับต่างๆ โดยมีอักษร (VB.Net, C#)

 
 
       
Bookmark.   
Share
       
.NET สร้าง Auto ID Number ใช้สำหรับ Order ID หรือ Member ID รหัสลำดับต่าง ๆ โดยมีอักษร และ ลำดับ (VB.Net, C#)เห็นถามกันมาบ่อยๆ ในกระทู้ เกี่ยวกับการสร้างลำดับพวก ID หรือ Sequence Number วันนี้ว่างๆ เลยจัดให้ซะหน่อย โดยในตัวอย่างบทความนี้จะเป็นการสร้าง Auto ID ลำดับของตัวเลข มีตัวอักษร และ ปี, เดือน มาเกี่ยวข้อง เหมาะสำหรับใช้เป็นพวก Order ID , Member ID หรือลำดับอื่น ๆ แล้วแต่จะประยุกต์การใช้งาน ในตัวอย่างนี้จะใช้ร่วมกับ Database ของ SQL Server โดยใช้วิธีการการสร้าง Table มาจัดเก็บลำดับ



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


ในตัวอย่างนี้จะประกอบด้วย 2 ตัวอย่างคือ
1. สร้าง ID แบบทีตัวอักษรและลำดับ เช่น TC-00001
2. สร้าง ID แบบที่มี ปี, เดือน และลำดับ เช่น TC-2016-12-00001

Ex1. สร้าง Auto ID แบบทีตัวอักษรและลำดับ เช่น TC-00001

ใน Concept ของตัวอย่างแรก ให้สร้าง Table ง่าย ๆ สำหรับจัดเก็บลำดับแบบง่าย ๆ โดยจัดเก็บเป็นตัวเลข ที่เป็น ID ล่าสุด เพื่อจะได้นำไป +1 เมื่อมีการดึงค่า ID ใหม่

Table : GenerateNumber
CREATE TABLE [dbo].[GenerateNumber](
	[Sequence] [int] NOT NULL,
 CONSTRAINT [PK_GenerateNumber] PRIMARY KEY CLUSTERED 
(
	[Sequence] ASC
)) ON [PRIMARY]

GO

INSERT INTO GenerateNumber (Sequence) VALUES ('1');

.Net Generate Auto ID Number  Sequence

Code ตัวอย่างของ C# และ VB.Net

C#
        protected void Page_Load(object sender, EventArgs e)
        {
            this.lblSeqNo.Text = GenerateNumber();
        }

        protected static string GenerateNumber()
        {
            var strSeqNo = string.Empty; 
            var strPrefix = "TC"; // Prefix : TC-
            var intLength = 5; // Length : TC-XXXXX

            var intSequence = 0;
            
            var objConn = new SqlConnection();
            var objCmd = new SqlCommand();
            var strSQL = string.Empty;

            var strConnString = "Server=localhost;UID=sa;PASSWORD=mypassword;database=mydatabase; " +
            " Max Pool Size=400;Connect Timeout=600;";
            objConn.ConnectionString = strConnString;
            objConn.Open();

            //*** Get current sequence
            strSQL = "SELECT Sequence FROM GenerateNumber";
            objCmd = new SqlCommand(strSQL, objConn);
            SqlDataReader dr = objCmd.ExecuteReader();
            if(dr.HasRows)
            {
                dr.Read();
                intSequence = Convert.ToInt32(dr["Sequence"]);
            }
            dr.Close();

            //*** Update new sequence
            strSQL = "UPDATE GenerateNumber SET  Sequence = Sequence + 1 ";
            objCmd = new SqlCommand(strSQL, objConn);
            objCmd.ExecuteNonQuery();

            //*** Display sequence
            strSeqNo = string.Format("{0}-{1}", strPrefix, intSequence.ToString().PadLeft(intLength,'0'));

            objConn.Close();
            objConn = null;

            return strSeqNo;
        }

VB.Net
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.lblSeqNo.Text = GenerateNumber()
    End Sub

    Protected Shared Function GenerateNumber() As String
        Dim strSeqNo = String.Empty
        Dim strPrefix = "TC" ' Prefix : TC-
        Dim intLength = 5 ' Length : TC-XXXXX
        Dim intSequence = 0

        Dim objConn = New SqlConnection()
        Dim objCmd = New SqlCommand()
        Dim strSQL = String.Empty

        Dim strConnString = "Server=localhost;UID=sa;PASSWORD=mypassword;database=mydatabase; " &
            " Max Pool Size=400;Connect Timeout=600;"
        objConn.ConnectionString = strConnString
        objConn.Open()

        '*** Get current sequence
        strSQL = "SELECT Sequence FROM GenerateNumber"
        objCmd = New SqlCommand(strSQL, objConn)
        Dim dr As SqlDataReader = objCmd.ExecuteReader()
        If dr.HasRows Then
            dr.Read()
            intSequence = Convert.ToInt32(dr("Sequence"))
        End If
        dr.Close()

        '*** Update new sequence
        strSQL = "UPDATE GenerateNumber SET  Sequence = Sequence + 1 "
        objCmd = New SqlCommand(strSQL, objConn)
        objCmd.ExecuteNonQuery()

        '*** Return sequence
        strSeqNo = String.Format("{0}-{1}", strPrefix, intSequence.ToString().PadLeft(intLength, "0"))

        objConn.Close()
        objConn = Nothing

        Return strSeqNo
    End Function

Result

.Net Generate Auto ID Number  Sequence

ID ที่ได้

.Net Generate Auto ID Number  Sequence

เมื่อเรียกซ้ำๆ ลำดับของ ID จะเพิ่มขึ้นเรื่อยๆ



Ex2. สร้าง Auto ID แบบทีตัวอักษร ปี, เดือน และลำดับ เช่น TC-2016-12-00001

ใน Concept ของตัวอย่างที่ 2 ให้สร้าง Table ง่าย ๆ สำหรับจัดเก็บลำดับแบบง่าย ๆ โดย Table ให้มีการแยกจัดเก็บ ปี และ เดือน และ ลำดับ โดยรายการ เดือนและปี รวมทั้งลำดับ จะมีการ Insert ลงอัตโนมัติ เมื่อขึ้น ปี หรือ เดือน ใหม่

Table : GenerateNumber
CREATE TABLE [dbo].[GenerateNumber](
	[Year] [int] NOT NULL,
	[Month] [int] NOT NULL,
	[Sequence] [int] NOT NULL,
 CONSTRAINT [PK_GenerateNumber] PRIMARY KEY CLUSTERED 
(
	[Year] ASC,
	[Month] ASC,
	[Sequence] ASC
)) ON [PRIMARY]

.Net Generate Auto ID Number  Sequence

Code ตัวอย่างของ C# และ VB.Net

C#
        protected void Page_Load(object sender, EventArgs e)
        {
            this.lblSeqNo.Text = GenerateNumber();
        }

        protected static string GenerateNumber()
        {
            var strSeqNo = string.Empty;
            var strPrefix = "TC"; // Prefix : TC-
            var intLength = 5; // Length : TC-XXXXX

            var intYear = DateTime.Now.Year;
            var intMonth = DateTime.Now.Month;
            var intSequence = 0;

            var objConn = new SqlConnection();
            var objCmd = new SqlCommand();
            var strSQL = string.Empty;

            var strConnString = "Server=localhost;UID=sa;PASSWORD=mypassword;database=mydatabase; " +
            " Max Pool Size=400;Connect Timeout=600;";
            objConn.ConnectionString = strConnString;
            objConn.Open();

            //*** Get current sequence
            strSQL = "SELECT Sequence FROM GenerateNumber WHERE Year = " + intYear + " AND Month = " + intMonth + " ";
            objCmd = new SqlCommand(strSQL, objConn);
            SqlDataReader dr = objCmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                intSequence = Convert.ToInt32(dr["Sequence"]);
            }
            dr.Close();

            //*** Insert new month (when new month)
            if (intSequence == 0)
            {
                intSequence = 1;
                strSQL = "INSERT INTO GenerateNumber (Year, Month, Sequence) VALUES (" + intYear + "," + intMonth + "," + intSequence + ");  ";
                objCmd = new SqlCommand(strSQL, objConn);
                objCmd.ExecuteNonQuery();
            }
            
            //*** Update new sequence
            strSQL = "UPDATE GenerateNumber SET  Sequence = Sequence + 1 WHERE Year = " + intYear + " AND Month = " + intMonth + "  ";
            objCmd = new SqlCommand(strSQL, objConn);
            objCmd.ExecuteNonQuery();

            //*** Display sequence
            strSeqNo = string.Format("{0}-{1}-{2}-{3}", strPrefix, intYear, 
                intMonth.ToString().PadLeft(2,'0'), intSequence.ToString().PadLeft(intLength, '0'));

            objConn.Close();
            objConn = null;

            return strSeqNo;
        }

VB.Net
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.lblSeqNo.Text = GenerateNumber()
    End Sub

    Protected Shared Function GenerateNumber() As String
        Dim strSeqNo = String.Empty
        Dim strPrefix = "TC" ' Prefix : TC-
        Dim intLength = 5 ' Length : TC-XXXXX
        Dim intYear = DateTime.Now.Year
        Dim intMonth = DateTime.Now.Month
        Dim intSequence = 0

        Dim objConn = New SqlConnection()
        Dim objCmd = New SqlCommand()
        Dim strSQL = String.Empty

        Dim strConnString = "Server=localhost;UID=sa;PASSWORD=mypassword;database=mydatabase; " &
        " Max Pool Size=400;Connect Timeout=600;"
        objConn.ConnectionString = strConnString
        objConn.Open()

        '*** Get current sequence
        strSQL = "SELECT Sequence FROM GenerateNumber WHERE Year = " & intYear & " AND Month = " & intMonth & " "
        objCmd = New SqlCommand(strSQL, objConn)
        Dim dr As SqlDataReader = objCmd.ExecuteReader()
        If dr.HasRows Then
            dr.Read()
            intSequence = Convert.ToInt32(dr("Sequence"))
        End If
        dr.Close()

        '*** Insert new month (when new month)
        If intSequence = 0 Then
            intSequence = 1
            strSQL = "INSERT INTO GenerateNumber (Year, Month, Sequence) VALUES (" & intYear & "," & intMonth & "," & intSequence & ");  "
            objCmd = New SqlCommand(strSQL, objConn)
            objCmd.ExecuteNonQuery()
        End If

        '*** Update new sequence
        strSQL = "UPDATE GenerateNumber SET  Sequence = Sequence + 1 WHERE Year = " & intYear & " AND Month = " & intMonth & "  "
        objCmd = New SqlCommand(strSQL, objConn)
        objCmd.ExecuteNonQuery()

        '*** Display sequence
        strSeqNo = String.Format("{0}-{1}-{2}-{3}", strPrefix, intYear,
                                 intMonth.ToString().PadLeft(2, "0"), intSequence.ToString().PadLeft(intLength, "0"))

        objConn.Close()
        objConn = Nothing

        Return strSeqNo
    End Function

Result

.Net Generate Auto ID Number  Sequence

ID ที่มี ปี และ เดือน มาเกี่ยวข้อง

.Net Generate Auto ID Number  Sequence

ID ที่มี ปี และ เดือน มาเกี่ยวข้อง

.Net Generate Auto ID Number  Sequence

ในกรณีที่ขึ้น เดือน หรือ ปี ใหม่ ก็จะเริ่มนับ 1 ใหม่

.Net Generate Auto ID Number  Sequence

รายการ Table ที่เกี่ยวข้อง ที่ถูก Insert อัตโนมัติ

Note!! ในกรณีที่ต้องการเชื่อมต่อกับ Database อื่นๆ เช่น MySQL, MS Access หรือ Oracle ให้เปลี่ยนรูปแบบของ Connector และ ConnectionString ตามตัวอย่างนี้

Ms Access (OleDb)

MySQL (MySqlClient)

Ms Access (OracleClient)

Ms Access (Odbc)


   
Share

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2016-12-28
  Download : No files
Sponsored Links
 

Sponsored Links
JSP and Directives page,include,taglib (Java)
JSP and Directives page,include,taglib (Java)
สำหรับ Directives ในภาษา JSP เป็นรูปแบบคำสั่งที่สั่งให้ JSP ทำการเรียกใช้งาน Resource ที่อ้างถึง หรือกำหนดคุณสมบัติของ Page ซึ่งแบ่งออกเป็นหลัก ๆ 3 ส่วน คือ page include และ taglib
Rating : Update : 2015-01-08 10:11:58
แนะนำการใช้งาน MongoDB (MongoDB คืออะไร ,NoSQL คืออะไร, การติดตั้ง MongoDB)
แนะนำการใช้งาน MongoDB (MongoDB คืออะไร ,NoSQL คืออะไร, การติดตั้ง MongoDB)
MongoDB คืออะไร ,NoSQL คืออะไร, การติดตั้ง MongoDB , แนะนำการใช้งาน MongoDB เบื้องต้น , การติดตั้ง Driver , Extension สำหรับ PHP เพื่อติดต่อกับ MongoDB
Rating : Update : 2013-07-18 10:40:32
การทำ mod_rewrite บน IIS การแปลง Convert .htaccess เป็น Web.Config (IIS and PHP)
การทำ mod_rewrite บน IIS การแปลง Convert .htaccess เป็น Web.Config (IIS and PHP)
ใครจะเชื่อหรือไม่ก็ตามว่าในปัจจุบันนั้น IIS ได้ให้ความสนใจและพัฒนา extension ที่จะสามารถรองรับ htaccess ของ apache extension ซึ่งนั่นก็หมายความว่า เราสามารถที่จะรัน php บน iis ที่เรียกใช้งาน mod_rewrite ได้เช่นเดียวกัน
Rating : Update : 2013-04-29 11:13:57
PHP - การออกรายงาน PDF ด้วย mPDF ด้วยวิธีอย่างง่ายและการเพิ่ม Font ไทยให้แก่ mPDF
PHP - การออกรายงาน PDF ด้วย mPDF ด้วยวิธีอย่างง่ายและการเพิ่ม Font ไทยให้แก่ mPDF
บทความนี้จะอธิบายการออกรายงานด้วย PDF จะ html ซึ่งมีความยืดหยุ่นสูงและสามารถใช้งานได้ง่าย โดย mpdf เป็น library การออก PDF ที่ใช้งานง่ายอีกทั้งยังมีการปรับปรุงและอัพเดตอยู่เกือบตลอกเวลา รองรับการใส่ Css อีกด้วย ซึ่งโดยรวมแล้วใช้งานได้ง่ายมากกว่า FPDF และ TCPDF ครับ
Rating : Update : 2015-03-02 17:39:01
ตอนที่ 2 : รู้จัก Xamarin Studio IDE บน Mac OS การเขียน iOS บน Xamarin ด้วยภาษา C#
ตอนที่ 2 : รู้จัก Xamarin Studio IDE บน Mac OS การเขียน iOS บน Xamarin ด้วยภาษา C#
ปกติแล้วบน Mac OS เราสามารถใช้เครื่อง Mac ติดตั้งโปรแกรม Xcode และเขียน iOS App ได้เลย ซึ่งจะมีความสะดวกและทำได้ง่ายมากกว่า Xamarin Studio IDE แต่ข้อเสียคือจะต้องเขียนด้วยภาษา Objective-C และ Swift เท่านั้น ซึ่งภาษา Objective-C
Rating : Update : 2014-10-26 18:54:49
พื้นฐานการเปลี่ยน php code จาก mysql มาใช้ mysqli
พื้นฐานการเปลี่ยน php code จาก mysql มาใช้ mysqli
สวัสดีครับ บทความนี้จะเป็นบทความพื้นฐานการเปลี่ยนphp code จากmysqlมาใช้mysqli ครับ อย่าพิ่งบอกว่า ไม่เปลี่ยน mysqliยาก ครับ ผมอยากให้ลองเปิดใจแล้วอ่านบทความนี้ครับ
Rating : Update : 2013-04-25 21:55:07


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน Struts การเขียนโปรแกรม Java Struts Framework
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน Yii  Framework การเขียนโปรแกรม ภาษา PHP กับ Yii
สอน .Net การเขียนโปรแกรม ภาษา .Net

Free Tutorial
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว

สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   




Acc : thaicreate@hotmail.com






Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2015 All Rights Reserved.
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 084-715-5121 อัตราราคา คลิกที่นี่

Back to Top