0

私はこのチュートリアルを使用して、C#を使用して自分自身のSQLServerExpressを教えてきました。これは私がデータベースについて知っていることのほとんどすべてなので、このプロジェクトに基づいて構築するための例や情報を検索すると、このチュートリアルの最終結果に適合させることができないようです。

たとえば、チュートリアルの最後に、作成者はデータテーブルの主キーを作成します。最後に追加したキーを返却できるようにしたいと思います。これを行うにはselectlast_insert_id()関数を使用する必要があることがわかりましたが、これはどの程度正確に行われますか?クエリとプロシージャについて何か読んだことがありますが、それらの使用方法がわかりません。

誰かがこれがどのように行われるかを私に説明できますか?チュートリアルのサンプルコードで最後に作成された主キーを取得する例をいただければ幸いです。

ありがとう!

編集:Ops、I ment SELECT SCOPE_IDENTITY()、not select last_insert_id()

4

1 に答える 1

1

コマンドのメソッドScope_Identityと一緒に関数を使用できます。ExecuteScalar

using (var conn = new SqlConnection("Server=.\SQLExpress;AttachDbFilename=|DataDirectory|Northwind.mdf;Database=Northwind;Trusted_Connection=Yes;"))
using (var cmd = conn.CreateCommand())
{
    conn.Open();
    cmd.CommandText = 
    @"
        INSERT INTO Categories (CategoryName) Values (@CategoryName); 
        SELECT Scope_Identity()
    ";
    cmd.Parameters.AddWithValue("@CategoryName", "some category");
    int lastId = (int)cmd.ExecuteScalar();
}
于 2012-08-03T08:52:21.157 に答える