Heim >Backend-Entwicklung >C++ >Wie rufe ich Ausgabeparameter aus einer gespeicherten Prozedur in C# ab?

Wie rufe ich Ausgabeparameter aus einer gespeicherten Prozedur in C# ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-10 08:05:42731Durchsuche

How to Retrieve Output Parameters from a Stored Procedure in C#?

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!

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