作者:一起去钓鱼 | 来源:互联网 | 2023-05-18 07:52
Access数据库,有一项(ID)是自动编号,删除一条记录,再增加时记录时出现的问题:物理数据库中,自动编号(ID)项是递增的,删除一条记录后(比如:ID8),再增加记录时(NewRow)不会
Access数据库,有一项(ID)是自动编号,删除一条记录,再增加时记录时出现的问题:物理数据库中,自动编号(ID)项是递增的,删除一条记录后(比如:ID = 8),再增加记录时(NewRow) 不会再分配给新记录了。但是数据集(mydataset)并不知道 8号曾经被分配过,照样把8分配给NewRow,当用 Dataset 对物理数据库更新的时候,该NewRow 的ID = 8又被强行转换为别的,这样我根据NewRow的 ID 生成的别的项就产生了混乱!!我该如何处理!谢谢
9 个解决方案
绑定的时候,不要把ID字段绑定上
另外,你删除记录是从哪删除的?datatable 还是数据库
不会吧.在.NET中还有用绑定方式 的.
还是用ADO存取吧,什么问题都解决了
自动编号是数据库自动分配的,无需在代码中维护,新增记录后可以读取
删除的时候我是用sql直接对数据库操作的,没经过数据集!大哥了,我就是读取的的记录,不在代码中维护现在出错了
你直接在数据库中操作的记录,在数据中还存在,再用dataset更新数据库当然会出错,应该在dataset中删除记录
在添加新记录时,不要给自动增长字段ID赋值即可,数据库系统会自动分配
如果是这样,换个思路:
先插ID,
再取ID,
然后再用这个ID插相关表数据
呵,这叫分解动作的好处,
一个包太沉了,
分包来提方便一点,可且可以量力而行,悠哉悠哉