如何在vb.net中添加日期、年份和字母的自动增量
代码是这样的。但是我没有得到新号码,而是得到了2月16日INV-00011和2月16日INV-000111和2月16日INV-000111如何在vb.net中添加日期、年份和字母的自动增量,.net,vb.net,.net,Vb.net,代码是这样的。但是我没有得到新号码,而是得到了2月16日INV-00011和2月16日INV-000111和2月16日INV-000111 Private Function newautonum() Dim NewValue As Integer 'Dim result As String Dim resultN As String Dim ynow As String = DateTime.Today.ToString("yy") Dim Mnow
Private Function newautonum()
Dim NewValue As Integer
'Dim result As String
Dim resultN As String
Dim ynow As String = DateTime.Today.ToString("yy")
Dim Mnow As String = DateTime.Today.ToString("MMM")
Dim Bilnow As String = Mnow & "-" & ynow & "-"
Dim qry As String = "select MAX(ID) from tblTrns"
ConObj = New SqlConnection(ConStr)
ConObj.Open()
CmdObj = New SqlCommand(qry, ConObj)
resultN = CmdObj.ExecuteScalar().ToString()
If String.IsNullOrEmpty(resultN) Then
resultN = Bilnow & "INV-000"
' resultN = result
End If
resultN = resultN.Substring(0)
Int32.TryParse(resultN, NewValue)
NewValue = NewValue + 1
resultN = resultN + NewValue.ToString
Return resultN
ConObj.Close()
End Function
现在我试过了,但是没有运气。。。。从类型“DBNull”到类型“String”的转换无效。getnextvalue Error的函数
Private Function newautonum() As String
Dim NewValue As Integer
Dim result As String
Dim qry As String = "Select MAX(ID) from tblTrns"
ConObj = New SqlConnection(ConStr)
ConObj.Open()
CmdObj = New SqlCommand(qry, ConObj)
result = CmdObj.ExecuteScalar().ToString()
If String.IsNullOrEmpty(result) Then
result = String.Format("{0}-INV-{1:000}", DateTime.Now.ToString("MMM-yy"), NewValue)
End If
Int32.TryParse(result, NewValue)
NewValue = GetNextValue()
result = result & GetNextValue.ToString
Return result
ConObj.Close()
End Function
你有你需要的一切,只是你没有的字符串格式 假设
NewValue
包含要为其创建字符串的下一个数字:
Dim newValue = GetNextValue()
resultN = $"{DateTime.Now.ToString("MMM-yy")}-INV-{newValue:000}"
注意如果使用Visual Studio 2013或更低版本,则必须使用String.Format而不是$快捷方式:
resultN = String.Format("{0}-INV-{1:000}", DateTime.Now.ToString("MMM-yy"), newValue)
我建议您使用单独的函数返回下一个值:
Private Function GetNextValue() As Integer
Dim qry As String = "select MAX(ID) from tblTrns"
ConObj = New SqlConnection(ConStr)
ConObj.Open()
CmdObj = New SqlCommand(qry, ConObj)
Dim result = CmdObj.ExecuteScalar()
If String.IsNullOrEmpty(result) Then
Return 1
Else
Return CInt(result) + 1
End If
End Function
谢谢,先生。但我不明白这句话。resultN=$“{DateTime.Now.ToString(“mmmyy”)}-INV-{newValue:000}”我也试过这个。但是字符$无效?您应该打开
选项Strict
也尝试过这个。但是字符$无效?使用resultN=retval=String.Format(“{0}-INV-{1}”、DateTime.Now.ToString(“MMM-yy”)、newvalue.ToString(“000”)
发布的答案使用的是VS2010的VS2015特性。亲爱的先生,你能完成我的全部回答吗