代码始终生成相同的值

时间:2013-02-07 09:03:40

标签: .net sql vb.net

我正在使用Btngen为我的TextBox生成一个ID而且我有0001并将其保存到SQLSERVER中的数据库中,问题是我关闭程序并再次重新打开它后生成的值再次单击Btngen后,我的TextBox仍为0001。我怎么能避免这种情况?如何保留已生成的值并移至下一个值?我使用增量但它只在程序仍在运行时有效但如果我关闭程序并再次运行它会回到0001任何人都可以告诉我该怎么做?

这是我的代码:

Dim p1num As Integer = 0
 p1num += 1
 txtPNumber.Text = p1num.ToString("D4")

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)
            SQLcon.Open()
            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

1 个答案:

答案 0 :(得分:1)

你不应该这样做。

如果您需要每条记录都有一个唯一的,生成的整数id,每次创建一条记录时会增加1,那么请使用数据库中的Identity字段。

在列属性的标识规范中,设置:

  • (IsIdentity)为'是'
  • 身份增加为'1'
  • 身份种子为'1'

您可能还应该将此值设为表中的主键。

保存记录后,您应该查询数据库以在UI中显示生成的ID值。