自动递增主键值始终为0

时间:2018-08-09 09:37:02

标签: sql sql-server vb.net oledb

我正尝试使用以下代码向数据库添加新行。

即使Rundef表具有应自动递增的主键,其值始终为零。为什么会这样?

Private oRunDefDS As DataSet
Dim oDR As DataRow = oRunDefDS.Tables("RunDef").NewRow()

Rundef表的设计:

enter image description here

1 个答案:

答案 0 :(得分:3)

在代码中创建新行时,尚未将其插入数据库中。这意味着数据库引擎尚未分配其增量ID,而是将其默认设置为0。

将记录插入数据库,并且ID应该自动更新,尽管您可能还需要重新读取该行以取回数据,具体取决于您使用的数据访问方式。

如果不是这种情况,那么您的代码可以创建许多新行,仅供内部使用,但是需要对使用的ID进行保留。如果您从未将这些新行保存到数据库中,那么最终的增量ID将会有很多空白。