首頁 >後端開發 >C++ >如何在 MVC 4 中使用 C# 執行 SQL 插入後取得插入的 ID?

如何在 MVC 4 中使用 C# 執行 SQL 插入後取得插入的 ID?

Patricia Arquette
Patricia Arquette原創
2025-01-17 22:05:13881瀏覽

How to Get the Inserted ID After an SQL Insert Using C# in MVC 4?

在 C# 中執行 SQL 插入操作後檢索新插入的 ID (MVC 4)

本文示範如何在 MVC 4 應用程式中使用 C# 將資料插入 SQL Server 表中,並同時取得新插入記錄的 ID。

程式碼範例:插入資料並擷取 ID

以下程式碼片段說明如何使用兩種不同的方法來實現此目的:

方法一:使用SCOPE_IDENTITY()(適用於SQL Server 2005以上版本)

<code class="language-csharp">public class MemberBasicData
{
    public int Id { get; set; }
    public string Mem_NA { get; set; }
    public string Mem_Occ { get; set; }     
}

public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
    using (SqlConnection con = new SqlConnection(Config.ConnectionString))
    {
        using(SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ);SELECT SCOPE_IDENTITY();", con))
        {
            cmd.Parameters.AddWithValue("@na", Mem_NA);
            cmd.Parameters.AddWithValue("@occ", Mem_Occ);
            con.Open();

            int newId = Convert.ToInt32(cmd.ExecuteScalar());

            if (con.State == System.Data.ConnectionState.Open) con.Close();
            return newId;
        }
    }
}</code>

方法 2:使用 OUTPUT 子句(SQL Server 2005 及更高版本)

這種方法因其清晰和高效而受到普遍青睞。

<code class="language-csharp">using(SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))
{
    cmd.Parameters.AddWithValue("@na", Mem_NA);
    cmd.Parameters.AddWithValue("@occ", Mem_Occ);
    con.Open();

    int newId = (int)cmd.ExecuteScalar();

    if (con.State == System.Data.ConnectionState.Open) 
        con.Close();

    return newId;
}</code>

兩種方法實現相同的結果:插入資料並傳回新產生的ID。 OUTPUT 子句通常被認為更有效率且可讀。 請記得將 Config.ConnectionString 替換為您的實際連接字串。

以上是如何在 MVC 4 中使用 C# 執行 SQL 插入後取得插入的 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn