如何用当前年份+字符串递增数字?

时间:2018-11-09 02:22:05

标签: vb.net

  Public Sub incrPR()
    Dim curValue As Integer
    Dim result As String
    Dim yr As String = Now.Year.ToString()
    Dim txt As String = "PR"
    Using con As SqlConnection = New SqlConnection(ConString)
        con.Open()
        Dim cmd = New SqlCommand("Select MAX(SpecialOrderNo) FROM SpecialOrder", con)
        result = cmd.ExecuteScalar().ToString
        If String.IsNullOrEmpty(result) Then
            result = "000"
        End If

        Int32.TryParse(result, curValue)
        curValue += 1
        result = curValue.ToString("D3") + "-" + yr + "-" + txt
        txtno.Text = result
    End Using
End Sub

预期输出:

001-2018-PR
002-2018-PR
003-2018-PR

1 个答案:

答案 0 :(得分:0)

您没有看到想要的行为的特定原因在这里:

Int32.TryParse(result, curValue)

如果result为“ 001-2018-PR”,则TryParse将失败,即返回False,这意味着curValue将为零。这意味着您每次都会得到零。如果您想解析文本的第一部分,则可以这样做,而不是解析整个内容,例如

Int32.TryParse(result.Split("-"c)(0), curValue)

我会做出重大更改,但这将解决您的直接问题。