Heim >Backend-Entwicklung >C++ >Wie rufe ich Ausgabeparameter aus einer gespeicherten Prozedur in C# ab?
Ausgabeparameter aus gespeicherten Prozeduren in C# abrufen
Viele Datenbankinteraktionen nutzen gespeicherte Prozeduren, um Daten effizient zu verwalten. Eine häufige Anforderung ist das Abrufen von Ausgabeparametern, insbesondere beim Umgang mit automatisch generierten Primärschlüsseln. Dieses Beispiel zeigt, wie Ausgabeparameter in C# beim Arbeiten mit gespeicherten SQL Server-Prozeduren korrekt verarbeitet werden.
Das Problem tritt häufig auf, wenn versucht wird, den neu generierten Primärschlüssel nach einer INSERT-Operation zu erfassen. Die folgende modifizierte gespeicherte Prozedur bietet eine Lösung:
<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>
Diese gespeicherte Prozedur akzeptiert eine Vertragsnummer und gibt die neu generierte ID über den Ausgabeparameter @NewId
mit SCOPE_IDENTITY()
zurück.
Hier ist der aktualisierte C#-Code zum Abrufen dieses Ausgabeparameters:
<code class="language-csharp">// Establish database connection and command object using (SqlConnection conn = new SqlConnection(pvConnectionString)) using (SqlCommand cmd = new SqlCommand("dbo.usp_InsertContract", conn)) { cmd.CommandType = CommandType.StoredProcedure; // Define and add parameters cmd.Parameters.AddWithValue("@ContractNumber", contractNumber); cmd.Parameters.Add("@NewId", SqlDbType.Int).Direction = ParameterDirection.Output; // Open connection and execute the stored procedure conn.Open(); cmd.ExecuteNonQuery(); // Retrieve the output parameter value int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value); conn.Close(); }</code>
Dieser C#-Code stellt eine Verbindung zur Datenbank her, führt die gespeicherte Prozedur aus, ruft effizient den Ausgabeparameter @NewId
ab und speichert ihn in der Variablen contractID
. Der neu generierte Primärschlüssel steht nun zur weiteren Verarbeitung innerhalb Ihrer Anwendung zur Verfügung.
Das obige ist der detaillierte Inhalt vonWie rufe ich Ausgabeparameter aus einer gespeicherten Prozedur in C# ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!