0
需要自动生成ID的帮助。我有这个自动生成ID的代码,但最多只有10个增量。它始于PO0001
并且只计数到PO0010
,一旦到达PO0010
该ID卡在PO0001
中。自动生成字母数字ID
这里是我使用的代码:
Public Function newPOID(prefix As String, storedProcedure As String) As String
Dim newId As String = prefix + "0001"
Dim adpt As New SqlDataAdapter
Dim ds As New DataSet
Dim dr As SqlDataReader
Dim conn As New SqlConnection
conn.ConnectionString = conString
utos = New SqlCommand(storedProcedure, conn)
utos.CommandType = CommandType.StoredProcedure
conn.Open()
dr = utos.ExecuteReader
If dr.Read Then
If dr.IsDBNull(0) Then
Dim num As Integer = 1
'Dim prefix As String = "PO"
Dim append As String = prefix + num.ToString().PadLeft(4, "000")
newId = append
Else
Dim POstring As String = dr(0).ToString.Substring(0, 3)
Dim POID As Integer = dr(0).ToString.Substring(5) + 1
Dim append As String = POstring + POID.ToString().PadLeft(3, "000")
newId = append
End If
conn.Close()
End If
Return newId
End Function
你总是可以使用的ID和前面加上“PO”自动增量列到它的显示。如果你打算生成PK,不要这样做。 – Plutonix
@Plutonix我将在SQL中为多行使用自动生成的ID,这就是为什么我不能'使用自动增量列。在列表视图中,数据将使用自动生成的ID保存在数据库中,以便当我使用创建的ID选择数据时,我可以选择多行。 –
这些数据实际上代表什么?在我看来,使用两个表可能会更好,在这种情况下,您可以简单地让数据库在两种情况下生成ID。将一行添加到父表中并生成单个标识,然后将多行添加到具有相同父标识的子表中。 – jmcilhinney