首頁 > 後端開發 > C++ > 如何在 C# 中從預存程序的輸出參數檢索主鍵?

如何在 C# 中從預存程序的輸出參數檢索主鍵?

Linda Hamilton
發布: 2025-01-10 08:45:42
原創
568 人瀏覽過

How to Retrieve a Primary Key from a Stored Procedure's Output Parameter in C#?

在C#中使用預存程序輸出參數

從預存程序檢索資料時,通常需要存取輸出參數以取得其他資訊。在本例中,一個C#程式在嘗試檢索由usp_InsertContract預存程序傳回的主鍵時遇到問題。

預存程序稍作修改,使用SCOPE_IDENTITY(),如下圖所示:

<code class="language-sql">CREATE PROCEDURE usp_InsertContract
(
    @ContractNumber varchar(7),
    @NewId int OUTPUT
)
AS
BEGIN
    INSERT INTO [dbo].[Contracts] (ContractNumber)
    VALUES (@ContractNumber)

    SELECT @NewId = SCOPE_IDENTITY()
END</code>
登入後複製

C#程式碼也進行了調整,以正確檢索輸出值:

<code class="language-csharp">// 打开连接并执行存储过程
conn.Open();
cmd.ExecuteNonQuery();

// 从@NewId读取输出值
int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value);
conn.Close();</code>
登入後複製

此修改應透過確保主鍵正確地作為輸出參數傳回並可在C#程式中存取來解決問題。

注意:務必驗證Contracts表是否具有已正確配置IDENTITY屬性的欄位。缺少IDENTITY欄位也可能導致難以取得主鍵值。

以上是如何在 C# 中從預存程序的輸出參數檢索主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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