C# 在C中自动生成Access数据库的ID#
我有一个access数据库,我正在为它制作一个C#接口。我不使用内置的,因为我不知道VB 对于数据库中的两个表,我希望自动生成ID,而不是让用户输入它们。我能想到的唯一方法是:C# 在C中自动生成Access数据库的ID#,c#,ms-access,C#,Ms Access,我有一个access数据库,我正在为它制作一个C#接口。我不使用内置的,因为我不知道VB 对于数据库中的两个表,我希望自动生成ID,而不是让用户输入它们。我能想到的唯一方法是: 生成一个随机ID 检查表中的每条记录,确保非用户具有相同的ID 如果是唯一的,则使用该ID。否则,生成新ID 我只是觉得一定有更好更有效的方法来做。有人能帮我吗 此外,我的数据库以后需要通过网络从不同的计算机访问。使用访问权限可以吗。使用其他数据库(如MS-SQL)有什么好处吗?Access有一个自动id列,可以为您实现
此外,我的数据库以后需要通过网络从不同的计算机访问。使用访问权限可以吗。使用其他数据库(如MS-SQL)有什么好处吗?Access有一个自动id列,可以为您实现这一点 但是,如果你打算自己做(不可取),你会有这样一张桌子:
TableName NextId
--------- ------
SomeTable 123
SomethingElse 4567
select (count(*) + 1) as newId from mytable
i、 e.跟踪每个表最后使用的ID。实际上,它有点复杂,因为您必须使用锁定来确保生成新ID时只有一个人使用它。Access在内部使用类似这样的机制来生成其自动ID
当我们这样做的时候,我想你可以使用guid。事实上,每次你创造一个宇宙时,它们在整个已知宇宙中都是独一无二的。看
Access数据库可以共享—您基本上必须将数据库放在网络驱动器上。这是一种非常类似于20世纪90年代的方法
最终,尽管您最好使用MS-SQL,但有一个名为SQL Server Express的免费版本。真正的访问只有在前端也使用它时才有用。如果你要用C语言做前端,你最好用MS-SQL
MS-SQL支持自动ID—它调用它们
- 生成一个随机ID
- 检查表中的每条记录,确保非用户具有相同的ID
- 如果是唯一的,则使用该ID。否则,生成新ID
TableName NextId
--------- ------
SomeTable 123
SomethingElse 4567
select (count(*) + 1) as newId from mytable
只需让Access自动生成id,无需手动创建。只需将id字段定义为自动递增。我很确定Access具有自动id列类型。。。我会改用MS-SQL,它有一个免费版本——SQLServerExpress。Access可以跨网络使用,但它需要将数据库放在网络驱动器上,而且这一切都非常简单。如果您不使用Access提供的VBA功能,我绝对建议您使用SQL Server Express。它将支持更大的数据库,并能更好地处理多用户访问。如果您不使用访问前端,请使用MySQL或MS SQL Express。虽然访问将通过一个同时有多个用户的网络工作,但很容易损坏,也很难保护。谢谢!我将使用SQLServerExpress。我在使用它时会遇到这个问题吗?还是它也有一个自动id列?我看到了UniData和UniVerse的可怕闪回。@Hauzron SQL Server支持自动递增字段。