Heim >Backend-Entwicklung >C++ >Wie rufe ich einen Primärschlüssel aus dem Ausgabeparameter einer gespeicherten Prozedur in C# ab?

Wie rufe ich einen Primärschlüssel aus dem Ausgabeparameter einer gespeicherten Prozedur in C# ab?

Linda Hamilton
Linda HamiltonOriginal
2025-01-10 08:45:42619Durchsuche

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

Verwendung gespeicherter Prozedurausgabeparameter in C#

Beim Abrufen von Daten aus einer gespeicherten Prozedur müssen Sie häufig auf Ausgabeparameter zugreifen, um zusätzliche Informationen zu erhalten. In diesem Beispiel stößt ein C#-Programm beim Versuch, den von der gespeicherten Prozedur usp_InsertContract zurückgegebenen Primärschlüssel abzurufen, auf Probleme.

Die gespeicherte Prozedur wurde leicht geändert, um SCOPE_IDENTITY() zu verwenden, wie unten gezeigt:

<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>

Der C#-Code wurde ebenfalls angepasst, um den Ausgabewert korrekt abzurufen:

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

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

Diese Änderung sollte das Problem lösen, indem sie sicherstellt, dass der Primärschlüssel korrekt als Ausgabeparameter zurückgegeben wird und im C#-Programm zugänglich ist.

Hinweis: Stellen Sie sicher, dass die Tabelle „Verträge“ Spalten mit korrekt konfiguriertem IDENTITY-Attribut enthält. Fehlende IDENTITY-Spalten können es auch schwierig machen, den Primärschlüsselwert zu erhalten.

Das obige ist der detaillierte Inhalt vonWie rufe ich einen Primärschlüssel aus dem Ausgabeparameter einer gespeicherten Prozedur in C# ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn