添加时产品的 ID 号在重新加载表单时不断变化
An ID number for a product when added keeps changing when the form is reloaded
我最近开始重温 vb 中的数据库编程,我正在使用 Northwind 数据库进行测试。
在我的程序中,我有添加、编辑和删除产品的功能。当我使用 Windows 表单将新产品添加到 table 时,产品 ID 会递增(如果最后一个产品 ID 是 70,则新产品将是 71),然后我更新数据库。
然而,我一直遇到的一个问题是,当我再次调试我的表单并转到我刚刚输入的最后一个产品时,ID 已从 71 更改为 84,我不确定为什么会这样。这是我用于添加功能的代码,如果您需要查看我代码的任何其他部分,请告诉我并感谢您的帮助:)
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
newProduct = NorthwindDataSet1.Products.NewProductsRow()
newProduct("ProductName") = txtProdName.Text
newProduct("UnitPrice") = txtUnitPrice.Text
newProduct("Discontinued") = cbxDiscontinued.CheckState
newProduct("ProductID") = NewProdID
Try
NorthwindDataSet1.Products.Rows.Add(newProduct)
Try
Me.Validate()
Me.ProductsTableAdapter.Update(Me.NorthwindDataSet1.Products)
MsgBox("Update successful")
Catch ex As Exception
MsgBox("Update failed")
End Try
Catch x As Exception
MsgBox("This does not work")
End Try
btnAdd.Visible = False
btnDelete.Enabled = True
btnCancel.Enabled = True
btnFirst.Enabled = True
btnLast.Enabled = True
btnPrevious.Enabled = True
btnNext.Enabled = True
btnNew.Enabled = True
lblProdID.Visible = True
ProductsBindingSource.ResumeBinding()
lblLastPos.Text = ProductsBindingSource.Count
End Sub
无论您的插入查询是否完成,每次对 Access 数据库的插入尝试 table 都会增加自动编号字段。
很常见,自动编号的字段会因删除的记录或失败的插入而产生空白。如果您的 table 从不执行删除操作,或者如果您有自定义 ID 字段并在删除记录时重置计数器,则只能保持连续编号。这也需要手动增加您的自定义 ID。
最好的方法就是忽略间隙.. :)
我最近开始重温 vb 中的数据库编程,我正在使用 Northwind 数据库进行测试。
在我的程序中,我有添加、编辑和删除产品的功能。当我使用 Windows 表单将新产品添加到 table 时,产品 ID 会递增(如果最后一个产品 ID 是 70,则新产品将是 71),然后我更新数据库。
然而,我一直遇到的一个问题是,当我再次调试我的表单并转到我刚刚输入的最后一个产品时,ID 已从 71 更改为 84,我不确定为什么会这样。这是我用于添加功能的代码,如果您需要查看我代码的任何其他部分,请告诉我并感谢您的帮助:)
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
newProduct = NorthwindDataSet1.Products.NewProductsRow()
newProduct("ProductName") = txtProdName.Text
newProduct("UnitPrice") = txtUnitPrice.Text
newProduct("Discontinued") = cbxDiscontinued.CheckState
newProduct("ProductID") = NewProdID
Try
NorthwindDataSet1.Products.Rows.Add(newProduct)
Try
Me.Validate()
Me.ProductsTableAdapter.Update(Me.NorthwindDataSet1.Products)
MsgBox("Update successful")
Catch ex As Exception
MsgBox("Update failed")
End Try
Catch x As Exception
MsgBox("This does not work")
End Try
btnAdd.Visible = False
btnDelete.Enabled = True
btnCancel.Enabled = True
btnFirst.Enabled = True
btnLast.Enabled = True
btnPrevious.Enabled = True
btnNext.Enabled = True
btnNew.Enabled = True
lblProdID.Visible = True
ProductsBindingSource.ResumeBinding()
lblLastPos.Text = ProductsBindingSource.Count
End Sub
无论您的插入查询是否完成,每次对 Access 数据库的插入尝试 table 都会增加自动编号字段。
很常见,自动编号的字段会因删除的记录或失败的插入而产生空白。如果您的 table 从不执行删除操作,或者如果您有自定义 ID 字段并在删除记录时重置计数器,则只能保持连续编号。这也需要手动增加您的自定义 ID。
最好的方法就是忽略间隙.. :)