在我的数据库中,我有两个表,Orders
并且Items
. 如果我插入两个 ID 为 1 和 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 上的订单时,我会遇到问题,然后程序不知道缺少 ID。当我删除 ID 2 时,我的代码在数据库中仍然只看到一个 ID,并且我再次将“下一个 id”作为 2。但在数据库中是 3。
请求一些指示。谢谢你。