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
答案 0 :(得分:0)
您没有看到想要的行为的特定原因在这里:
Int32.TryParse(result, curValue)
如果result
为“ 001-2018-PR”,则TryParse
将失败,即返回False
,这意味着curValue
将为零。这意味着您每次都会得到零。如果您想解析文本的第一部分,则可以这样做,而不是解析整个内容,例如
Int32.TryParse(result.Split("-"c)(0), curValue)
我会做出重大更改,但这将解决您的直接问题。