C# を使用して挿入された行の識別子を取得する
自動インクリメントされる「ID」フィールドを含むデータベース テーブルで ID を取得する最近挿入された行の処理は、繰り返し行われるタスクであることがわかります。これは、ID に依存する後続の操作で特に重要になります。
あなたの場合、挿入コマンドを実行したにもかかわらず、取得された ID 値は一貫してゼロを返しました。この不一致は、コマンドによって返された最初の行の最初の列を取得する ExecuteScalar の使用によって発生します。特定の列が投影されていないため、最初のインデックスの値が取得されます。ただし、自動インクリメントされる ID は通常、コマンドの挿入後に生成されるため、ID 列には最初は何も含まれません。
この問題に対処するには、コードを次のように変更することを検討してください。
MySqlCommand comm = connect.CreateCommand(); comm.CommandText = insertStatement; // Set the insert statement comm.ExecuteNonQuery(); // Execute the command long id = comm.LastInsertedId; // Get the ID of the inserted item
重要な違いは、値を返さずに挿入ステートメントを実行する ExecuteNonQuery の使用にあります。その後、LastInsertedId を呼び出すと、生成された ID 値が直接取得されます。
このアプローチは、自動インクリメントされる ID を取得する要件と一致し、ExecuteScalar で発生する問題を解決します。
以上がC# を使用して挿入された行の ID を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。