私のデータベースには、2 つのテーブルがOrders
ありItems
ます。ID 1 と 2 の 2 つの注文を挿入してから 2 番目の注文を削除すると、次の ID は 3 になります。これは理解していますが、テーブルの主キーに干渉してはならないことも認識しています。しかし、ID を縮小する方法が本当にない場合、何が私を悩ませているので、ID 2 を削除すると、次にデータベースに注文を追加するときに、ID 2 に配置したいと思います。
この関数で注文を取得しているため、おそらく間違った方法で行った可能性があります。
Private Sub GetLastOrderID()
Try
sqL = "SELECT ID FROM Order ORDER BY ID Desc"
ConnDB()
cmd = New OleDbCommand(sqL, conn)
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
'next id in database is current + 1
If dr.Read = True Then
txtOrderID.Text = dr("ID") + 1
Else
txtidnarocila.Text = 1
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
cmd.Dispose()
conn.Close()
End Try
End Sub
したがって、一般的に、ある ID の Order を削除すると問題が発生し、プログラムは ID が欠落していることを認識しません。ID 2 を削除すると、私のコードはデータベース内の ID を 1 つしか認識せず、再び「次の ID」を 2 として表示します。しかし、データベースでは 3 です。
いくつかの指示を求めています。ありがとうございました。