2

INSERTステートメントの実行後に自動生成されたIDを取得する方法はADO.NETにありますか?SELECT @@IDENTITYSQL ServerとMySQLについては知っていSELECT last_insert_id()ますが、必要なのはIDを取得するためのデータベースに依存しない方法です。

4

1 に答える 1

2

最後に挿入されたIDを取得するコマンドはベンダー固有であるため、方法が存在するとは思いません。できることは、クエリを組み込んでメインクエリに最後に挿入されたIDを取得し(これはあなたが望むものではないことを理解しています)、データベースに関係なく(特定のADO.NETタイプに依存せずに)それを読み取るC#関数を作成することですただし、インターフェイスで指定されたメソッドIDbDataReaderまたはIDbCommand

それ以外の場合は、Entity FrameworkなどのORMソリューションに依存する必要があります。これにより、最後に挿入されたIDを手動で取得する手間が省けますが、実装は非常にデータベース固有です。あなたはここでそれについての素晴らしい議論を見ることができます:

ADO.NETエンティティを使用してID行の値を取得する

このリンクを見ると、データアダプターに依存してレコードに直接アクセスするための洞察が得られます(ただし、私はそれが好きではありません)。

于 2012-11-10T10:37:56.050 に答える