2

ADO.NET 中是否有办法在执行 INSERT 语句后检索自动生成的 ID?我知道SELECT @@IDENTITYSql Server 和SELECT last_insert_id()MySQL,但我需要的是一种独立于数据库的方式来检索 ID。

4

1 回答 1

2

我认为没有办法存在,因为获取最后插入的 id 的命令是特定于供应商的。您可以做的是合并查询以在您的主查询中获取最后插入的 id(我理解这不是您想要的),然后编写一个 C# 函数来读取它,而不考虑您的数据库(不依赖于特定的 ADO.NET 类型但是在接口上指定的方法上IDbDataReaderIDbCommand

否则你将不得不依赖一些像实体框架这样的 ORM 解决方案,它会为你处理所有这些,让你免于手动获取最后插入的 id 的麻烦,尽管实现将是非常特定于 db 的。你可以在这里看到一个很好的讨论:

使用 ADO.NET Entity 获取标识行值

您可以看到这个链接,这将使您对直接访问依赖数据适配器的记录有一些了解(但我不喜欢它)。

于 2012-11-10T10:37:56.050 回答