在执行INSERT语句后,ADO.NET中是否有办法检索自动生成的ID?我知道Sql Server的SELECT @@IDENTITY
和MySQL的SELECT last_insert_id()
,但我需要的是一种与数据库无关的方法来检索ID。
答案 0 :(得分:1)
我认为不存在某种方式,因为获取最后插入ID的命令是特定于供应商的。您可以做的是合并查询以在主查询中获取最后插入的id(我理解的不是您想要的)然后编写C#函数来读取它而不管您的db(不依赖于特定的ADO.NET类型)但是在接口IDbDataReader
或IDbCommand
)
否则你将不得不依赖一些ORM解决方案,比如实体框架,它将为您解决所有这些问题,使您免于手动获取最后插入的ID的麻烦,尽管实现将特定于数据库。你可以在这里看到一个很好的讨论:
getting identity row value using ADO.NET Entity
您可以看到this link,它可以让您深入了解依赖数据适配器的记录(但我不喜欢它)。