首頁 > 資料庫 > mysql教程 > 如何在 C# MVC 4 中的 SQL INSERT 指令後檢索插入的 ID?

如何在 C# MVC 4 中的 SQL INSERT 指令後檢索插入的 ID?

Patricia Arquette
發布: 2025-01-17 01:42:13
原創
500 人瀏覽過

在 C# MVC 4 中執行 SQL INSERT 後檢索插入的 ID

How to Retrieve the Inserted ID After an SQL INSERT Command in C# MVC 4?

本文示範如何在 MVC 4 應用程式中使用 C# 插入資料並檢索新插入記錄的 ID。 雖然 ExecuteNonQuery 表示受影響的行數,但要取得插入的 ID 需要不同的方法。

最直接的方法是使用ExecuteScalar。 但是,結果需要明確轉換為整數:

<code class="language-csharp">int modified = (int)cmd.ExecuteScalar();</code>
登入後複製

執行成功後,modified將儲存新產生的ID。

對於 SQL Server 2005 及更高版本,利用 OUTPUT 語句中的 INSERT 關鍵字可提供更有效的解決方案:

<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 modified = (int)cmd.ExecuteScalar();

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

    return modified;
}</code>
登入後複製

對於較舊的 SQL Server 版本,SCOPE_IDENTITY() 函數提供了類似的替代方案:

<code class="language-csharp">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 modified = Convert.ToInt32(cmd.ExecuteScalar());

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

    return modified;
}</code>
登入後複製

這些方法可確保您準確地擷取插入記錄的 ID,無論您的 SQL Server 版本為何。 請記住在生產環境中適當處理潛在的異常。

以上是如何在 C# MVC 4 中的 SQL INSERT 指令後檢索插入的 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板