database - 增加标签

标签 database visual-studio-2010 sql-server-2008 increment

我的程序有问题,我需要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 代表二月 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

IntelliSense 是您的第一本书,因此必须使用它。 ;)

关于database - 增加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848118/

相关文章:

php - 当来自两个单独表的主键匹配时插入一个新字段

database - 如何在 SQL Server CE(精简版)数据库中创建外键关系?

c# - 在 WPF 应用程序中执行 INSERT 查询时 SqlCommand 方法错误

c# - SQL 查询中的期初余额和期末余额中的期末结果不正确?

sql - 每个表中的列名必须是唯一的。同时将表数据从一个表复制到sql server中的另一个表

database - haskell 与甲骨文

mysql - 从 txt 文件向 MySQL 添加新行

c# - XNA 4.0 for xbox 问题(困惑)

c++ - 重写虚函数在 DLL 生成的项目中不同

sql-server - 如何使用 Microsoft.SqlServer.Management.Smo 以编程方式导出 SQL 架构