我是一名学生,在使用自动增量时遇到问题,因为当我删除一行时,它会继续增量。解释:
我想自动增加 id 所以:
id name age
1 michael 18
2 katy 17
3 jack 20
现在我删除了第 3 行,当我单击 new 按钮时,它将转到 id 4 而不是 id 3 我尝试过 rows.count 并刷新文本框,但没有任何结果
一些附加信息
ds= dataset
maxrows = ds.Tables("virtualtable").Rows.Count
idcliTextBox.Text = maxrows
如何将 id 设置为真正的最后一行?
最佳答案
这是正确的行为,并且不是问题。通常,数据库中的自动增量列永远不会重置以适应因删除先前插入的记录而导致的空洞。 自动增量列通常用作主键来唯一标识表中的单个记录。
假设您的表代表 students
,其中 ID
字段值用作另一个表 examresults
的外键。在此表中您存储学生的考试结果。您的学生 Katy (2) 在数学和地理毕业考试成绩表中有两条记录。
如果您从表 students
中删除 ID=2 的记录以及 examresults
中的相关记录,则将 Jack 的记录从 3 更改为 2 意味着您需要还更改了 jack 考试成绩的相关记录。仔细想想,这是非常不切实际和无用的。
关于vb.net - 自动分配ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338030/