mysql - 在vb.net中创建收据编号并保存到mysql数据库中

标签 mysql vb.net crystal-reports

如何创建像这样的收据编号“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/

相关文章:

mysql - MySQL 中的节点是什么意思?

c# - 使用 Crystal Reports 打印条形码

crystal-reports - 将 Crystal Reports 存储在 XML 文件中?

c# - 在详细部分删除 Crystal 报告中的额外行

php - MYSQL 文本看起来很奇怪

mysql - 如何使用 Apache JMeter 为集群 MySQL 测试 HAProxy 负载平衡?

mysql - LOAD DATA INFILE - 以字符终止的字段,该字符也出现在字段中

vb.net - 无法从 Outlook.MailItem 中删除附件

asp.net - 用户怎么可能创建重复的帐户?

.net - 错误-MSB3030 Microsoft.Common.targets(3390,5)从.NET 4.0配置文件切换到完整.NET 4.0