繁体   English   中英

从C#添加记录到访问数据库

[英]Adding a record to access database from C#

我在C#中有一个Form Windows程序,它将记录添加到数据库并可以将其删除。

在数据库中我有ID(这是自动编号),但如果我删除一个记录,如果我想添加另一个记录,自动编号增加,不添加缺少的数字。

我的意思是,如果我的Access数据库中有9条记录,我想删除一条记录,它将是8,但是当我添加一条新记录时,我得到的是10而不是9.像这张图片:

在此输入图像描述

那有什么解决方案吗?

如果它是一个自动编号,则数据库将生成一个大于上一个使用的数字 - 这就是关系数据库的工作方式。 为什么会有这个解决方案? 想象一下,删除5,你想要做什么,让自动编号创建下一条记录为5? 如果你在C#app中显示一个id - 坏主意 - 那么把它改成你可以控制的其他值。

然而,你想要实现的目标没有意义。

如果我删除一条记录,如果我想添加另一条记录,则自动编号会增加并且不会添加缺少的数字。

[...]

那有什么解决方案吗?

最简洁的答案是不”。 使用后,即使已删除的记录在表中具有最大的自动编号值,通常也不会重复使用自动编号值。 这是因为(至少在某种程度上)Jet / Ace数据库引擎必须能够在多用户环境中管理自动编号值。

(上述规则的一个例外是,如果压缩Access数据库,则具有顺序自动编号字段的表的下一个可用自动编号值将重置为Max(current_value)+1。)

有关自动编号字段如何工作的更多详细信息,请参阅此处的其他答案。

在MS访问中,没有任何解决方案。 但是在sql server的情况下,您可以使用Identity列创建自己的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM