【发布时间】:2020-03-24 08:42:08
【问题描述】:
我目前正在处理我使用 VB.NET 2019 和 SQL Server 的项目。我需要创建一个自动生成 ID 的函数。
我希望我的 ID 如下所示:P001、P002、P003 等。有人可以告诉我如何编码吗?下面是我的代码
Private Sub Form4_Load_1(sender As Object, e As EventArgs) Handles MyBase.Load
BindData()
Dim data As String = "Data Source=LAPTOP-M8KKSG0I;Initial Catalog=Oceania;Integrated Security=True"
Dim con As New SqlConnection(data)
Try
If Con.State = ConnectionState.Closed Then
con.Open()
End If
Dim sql As String = "Select Max(PatientID) from Patient"
Dim cmd As New SqlCommand(sql, con)
Dim Max As String = cmd.ExecuteScalar
If Max > 0 Then
TextBox1.Text = Max + 1
Else
TextBox1.Text = "P01"
End If
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
【问题讨论】:
-
SO 不是代码编写服务。由您来研究、思考并尽最大努力实施。如果它不起作用,那么您可以在此处发布问题,向我们展示您所做的并解释它如何不符合您的期望。在这种情况下,线索是唯一改变的部分是数字,所以你根本没有生成 alpha 部分。
-
我建议您先查看
IDENTITY或SEQUENCE,然后再计算列。如果您遇到困难,请向我们展示您卡在哪里以及您编写的代码。否则,请向我们展示您所做的研究并解释您对此不了解的地方。另外,你应该考虑到'P999'会发生什么。 -
我请你检查我的答案。
-
(从字符串 P04 到类型 'integer' 的转换无效)系统弹出此消息。我该怎么办
-
@jiayukoh 为 P001、P002 等创建一个 int identity 的 PatientID 列和另一个列 PatientCode Varchar(10) 。否则,您需要从 P004 中提取 4。最好的选择是按照我的回答中的建议使用计算列。
标签: sql-server vb.net