【发布时间】:2016-02-05 09:08:05
【问题描述】:
代码是这样的。但是我没有得到新号码,而是得到了 Feb-16-INV-00011 和 Feb-16-INV-000111 和 Feb-16-INV-0001111
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函数错误。
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
【问题讨论】:
-
你应该打开
Option Strict -
也试过了。但是字符 $ 无效?
-
使用
resultN = retval = String.Format("{0}-INV-{1}", DateTime.Now.ToString("MMM-yy"), newvalue.ToString("000"))发布的答案是使用 VS2015 功能 -
我正在使用 VS2010。它会在 2010 年生效吗?
-
尊敬的先生,请您完成我的完整回答