0
IDを自動生成するためのヘルプが必要です。私はIDを自動生成するこのコードを持っていますが、インクリメントは10までです。 PO0001
で始まり、カウントはPO0010
に限定され、PO0010
になると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
で
は、私が使用したコードです。あなたはPKを生成する予定の場合、それをしないでください。 – Plutonixnum.ToString().PadLeft(4, "000")
を交換してください:ここ@Plutonix私は、自動インクリメント列を使用しないため、SQLで複数行に自動生成されたIDを使用します。リストビューからは、自動生成されたIDを使用してデータがデータベースに保存されるため、作成したIDを使用してデータを選択すると複数の行を選択できます。 –
このデータは実際に何を表していますか? 2つのテーブルを使用する方が良いと思われる場合は、両方のケースでデータベースにIDを生成させることができます。 1つの行が親テーブルに追加され、1つのIDが生成され、複数の行が同じ親IDを持つ子テーブルに追加されます。 – jmcilhinney