订单号的递归字母表 [英] recursive alphabet for order number

查看:99
本文介绍了订单号的递归字母表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

美好的一天专家!



当订单号达到500时,我正试图为我的订单号制作一个递归字母(但在我的测试中,我将其设置为1)。下面的代码从A - Z到AA工作正常,但是当涉及AB时,它显示AA并将ornumber重置为正确的。我的代码出了什么问题?





Good day experts!

i'm trying to make a recursive alphabet for my ORDER NUMBER when order number reaches 500 (but in my test i set it to 1).The code below are working fine from A - Z upto AA,but when it comes to AB,it display AA and reset the ornumber to one which is right. What is wrong with my code?


Private Sub generateORNumber()
        Dim con As New SqlConnection(ConnectString())
        Dim cd As New SqlCommand
        Dim lrd As SqlDataReader
        Try
            con.Open()
            cd.Connection = con
            cd.CommandText = "SELECT count(ornumber) as co,AlphabetID FROM BlueRoomTransactions group by AlphabetID"
            lrd = cd.ExecuteReader()
            While lrd.Read()
                ornum = Convert.ToString(lrd("co"))
                alpID = Convert.ToString(lrd("AlphabetID"))
            End While
        Catch ex As Exception
        Finally
            con.Close()
        End Try
        ornum = ornum + 1
        totalORNUM2 = ornum - 1

        txtORNumber.Text = "OR" & Date.Today.ToString("MMddyy") & alphRecursive().ToString & ornum.ToString.PadLeft(4, "0")


    End Sub


    Private Function alphRecursive() As String
        Dim alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()

        If ornum > 1 Then
            alpID += 1
            c = alpID
            ''Reset ornum to zero(0) and add another alphabet on the existing string like 'AA,AB' after it reaches the designated ornum like 1
            If c >= alphabet.Length Then
                ornum = ornum - totalORNUM2
                c = 0
                Return alphRecursive(c \ alphabet.Length) & alphabet(c Mod alphabet.Length)
            Else
                ornum = ornum - totalORNUM2
                Return "" & alphabet(c Mod alphabet.Length)
            End If
        Else

            Return "" & alphabet(c Mod alphabet.Length)

        End If


    End Function

推荐答案

这篇关于订单号的递归字母表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆