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
Freigeben: 2025-01-10 08:45:42
Original
568 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage