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