我正尝试使用以下代码向数据库添加新行。
即使Rundef
表具有应自动递增的主键,其值始终为零。为什么会这样?
Private oRunDefDS As DataSet
Dim oDR As DataRow = oRunDefDS.Tables("RunDef").NewRow()
Rundef
表的设计:
答案 0 :(得分:3)
在代码中创建新行时,尚未将其插入数据库中。这意味着数据库引擎尚未分配其增量ID,而是将其默认设置为0。
将记录插入数据库,并且ID应该自动更新,尽管您可能还需要重新读取该行以取回数据,具体取决于您使用的数据访问方式。
如果不是这种情况,那么您的代码可以创建许多新行,仅供内部使用,但是需要对使用的ID进行保留。如果您从未将这些新行保存到数据库中,那么最终的增量ID将会有很多空白。