我的程序有问题,我需要INCREMENT
某个值Label
Dim p1num As Integer = 0
M.Text = Format(Now, "MM")
Y.Text = Format(Now, "yy")
txtPNumber.Text = Y.Text.ToString & M.Text.ToString & p1num.ToString("D4")
我使用它来生成患者 ID,其中 M 代表月份,Y 代表年份 + p1num 以创建一个 4 位数字......所以输出将是这样的:
(让我们使用当前日期和年份)
13020001
13020002
13020003
13020004
等等....
在此之后,我将使用这些代码将其插入到 SQL SERVER 中的数据库中:
Dim SQLcon As New SqlConnection
Dim SQLdr As SqlDataReader
Try
SQLcon.ConnectionString = "Data Source=####;" & _
"Initial Catalog=####;Persist Security Info=True;User ID=####;Password="
Dim SQLcmd As New SqlCommand("INSERT INTO dbo.Patients" & _
"(pIDNo)" & _
"VALUES(@pIDNo)", SQLcon)
SQLcmd.Parameters.AddWithValue("@pIDNo", txtPNumber.Text)
MsgBox("Patient Added!", MsgBoxStyle.Information)
SQLdr = SQLcmd.ExecuteReader()
Catch ex As Exception
MessageBox.Show("Error Occured, Can't Add Patient!" & ex.Message)
Finally
SQLcon.Close()
End Try
Return ""
现在的问题是,当我关闭程序时,生成的值TextBox
总是从 13020001 开始。我想保留最近添加的值,然后将其增加到 +1,所以我计划显示刚刚添加到的当前 ID我的数据库使用这些:
Dim querystring As String = "SELECT MAX(pIDNo) FROM dbo.Patients"
Using connection As New SqlConnection("Data Source=####;" & _
"Initial Catalog=####;Persist Security Info=True;User ID=####;Password=")
Dim command As New SqlCommand(querystring, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader
While reader.Read
txtCurrentID.Text = reader.GetString(0)
End While
reader.Close()
我设法显示当前 ID,但现在的问题是我不能将其增加 1。
其他问题:我尝试复制显示的值并将其添加一个,但出现了另一个问题,月份和年份没有改变。如果我达到“三月”月,则生成的值仍然是
1302 + pnum1.text("D4") 应该是 1303 + pnum1.text("D4")
1302 代表 2 月 1303 代表 3 月
谁能解决我的问题?