如何创建像这样的收据编号“BSP000001”,并且在下一次加载收据表单时,收据编号将为“BSP000002”并再次保存到数据库..我正在使用vb2010和MySql数据库...它就像我的数据库表中的自动递增收据编号一样。
我真的不知道怎么做。
我的交易表看起来像这样,我只想显示 Receipt_No 列,只是为了弄清楚..
收据号
BSP000001
BSP000002
BSP000003
对于读过这篇文章的任何人来说,非常需要您的帮助...请为世界之外的程序员先生和夫人提供帮助..我谢谢您..
最佳答案
在单用户场景中,通常您可以使用 MAX 函数或按降序排列收据以查找最后插入的收据。一旦获得最后一条记录,就可以轻松提取数字部分,将值加一并构建新的收据号
Function GetNewReceiptNumber(prefix as string ) as String
using cn = new MySqlConnection(connectionstring)
using cmd = cn.CreateCommand()
cn.Open()
cmd.CommandText = "select receipt_no from receipts order by receipt_no DESC limit 1"
Dim result = cmd.ExecuteScalar
if result IsNot DbNull.Value AndAlso result IsNot Nothing Then
Dim number = Convert.ToInt32(result.ToString().SubString(prefix.Length))
return prefix & (number + 1).ToString("D6")
else
return prefix & "000001"
End If
End Using
End Using
End Function
或者也许最好使用 MAX(receipt_no) 以获得稍快的性能(但您确实需要有一个receipt_no索引)
cmd.CommandText = "select MAX(receipt_no) from receipts"
您可以从尝试以这种方式插入新收据的代码中调用此方法
Dim newReceiptNumber = GetNewReceiptNumber("BSP")
在此答案中有一些假设:
- 您有一个全局变量来保存连接的详细信息
名为
connectionstring
的 MySql 字符串
- 存储收据的表的名称称为
收据
关于mysql - 在vb.net中创建收据编号并保存到mysql数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27564388/