在c#中为Access数据库自动生成id
本文关键字:自动生成 id 数据库 Access 中为 | 更新日期: 2023-09-27 17:51:04
我有一个访问数据库,我正在做一个c#接口。我没有使用内置的,因为我不懂VB。
对于数据库中的两个表,我希望id是自动生成的,而不是让用户输入它们。我能想到的唯一方法是:
- 生成随机ID
- 检查表中的每条记录,以确保它们具有相同的ID。
- 如果是唯一的,则使用该ID。否则生成一个新的ID。
我只是认为一定有更好更有效的方法来做这件事。有人能帮我吗?
我的数据库也需要以后通过网络从不同的计算机访问。使用Access可以吗?使用MS-SQL等其他数据库有什么优点吗?
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