【发布时间】:2016-02-01 05:34:04
【问题描述】:
我有一个名为 customer 的表,其中有两个名为 cust_ID 和 Temp_ID 的列。 Temp_ID 是一个整数。我想要一个串联的 ID 作为 cust_ID。
我有以下函数来获取 temp_id 的最大值并将其递增 1。
Private Function Tempo()
Try
con.Open()
cmd.Connection = con
cmd.CommandText = ("Select MAX(Temp_ID) From Customer")
cmd.ExecuteNonQuery()
Dim sqlRead As SqlDataReader = cmd.ExecuteReader()
Temp1 = sqlRead.Item("Temp_ID")
Temp1 = Temp1 + 1
Catch ex As Exception
MsgBox(ex)
End Try
Return True
End Function
我在 vb.net 客户界面中有客户 ID 文本框的点击事件。
Private Sub txtBoxCustProfileID_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBoxCustProfileID.Click
Tempo()
Dim x = Temp1
Dim newID = String.Concat("C/", cmbNationality.Text, "/", Now.Year, "/", x)
txtBoxCustProfileID.Text = newID
End Sub
当我运行此代码时,我在 Tempo 函数中收到以下错误消息,因为“参数'提示'无法转换为类型'字符串'”我真的不明白这意味着什么,我也是编程新手。 请帮忙。
【问题讨论】:
-
开启选项严格; 您的代码 递增的 ID 不是 AutoIncrement ID。将 6 位信息粘合在一起形成一个 ID 是糟糕的设计。去掉 Try/Catch,你至少会知道是哪一行导致了错误
-
@Farhan Anam : Temp1 = sqlRead.Item("Temp_ID") 行
标签: sql-server vb.net auto-increment