在c#中为Access数据库自动生成id

本文关键字:自动生成 id 数据库 Access 中为 | 更新日期: 2023-09-27 17:51:04

我有一个访问数据库,我正在做一个c#接口。我没有使用内置的,因为我不懂VB。

对于数据库中的两个表,我希望id是自动生成的,而不是让用户输入它们。我能想到的唯一方法是:

  1. 生成随机ID
  2. 检查表中的每条记录,以确保它们具有相同的ID。
  3. 如果是唯一的,则使用该ID。否则生成一个新的ID。

我只是认为一定有更好更有效的方法来做这件事。有人能帮我吗?

我的数据库也需要以后通过网络从不同的计算机访问。使用Access可以吗?使用MS-SQL等其他数据库有什么优点吗?

在c#中为Access数据库自动生成id

Access有一个自动标识列可以为您做这些。

然而,如果你要自己做(不建议),你会有一个这样的表:

TableName     NextId
---------     ------
SomeTable     123
SomethingElse 4567

。跟踪每个表最后使用的ID。在实践中,它有点复杂,因为您必须使用锁定来确保在生成新ID时只有一个人使用它。Access在内部使用类似的机制来生成它的自动id。

说到这里,我想你可以直接使用guid。每次生成一个,它们在已知的宇宙中几乎都是独一无二的。参见c#如何创建Guid值?

Access数据库可以被共享——你基本上必须把数据库放在网络驱动器上。这是一种非常90年代的方法。 最后,虽然你最好使用MS-SQL -有一个免费的版本叫做Sql Server Express。真正的访问是有用的,如果你使用它的前端。如果你用c#做前端,你最好选择MS-SQL。

MS-SQL支持自动IDS -它称之为身份列。

  • 生成随机ID
  • 检查表中的每条记录,以确保它们具有相同的ID。
  • 如果是唯一的,则使用该ID。否则生成一个新的ID。

我希望你看到这种方法的问题。行越多,插入数据的时间就越长。

否则,如果没有自动增量ID,则标准方法如下:

select (count(*) + 1) as newId from mytable