【问题标题】:Code always generates the same value代码总是生成相同的值
【发布时间】:2013-02-07 09:03:39
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: .net sql vb.net


    【解决方案1】:

    你不应该这样做。

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

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

    • (IsIdentity)改为“是”
    • 标识增量为“1”
    • 标识种子为“1”

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      相关资源
      最近更新 更多