我的程序有问题,我需要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年是三月
有人能解决我的问题吗?

最佳答案

 While reader.Read       //you don't need that for aggregate functions.
     txtCurrentID.Text = command.ExecuteScaler() //something like that... is enough
     int p1num=integer.parse(txt.CurrentID.text.substring(4,4)) +1
 //  End While
 ...

txtPNumber.Text = Y.Text.ToString & M.Text.ToString & p1num.ToString("D4")

如果您只想要日期:那么使用Date.Today
       pNumber.Text = Today.Date.Month.ToString + " " + Today.Date.Year.ToString

智能感知是你的第一本书,所以必须使用它。;)

10-05 23:43