Maison > développement back-end > C++ > Comment récupérer les paramètres de sortie d'une procédure stockée en C# ?

Comment récupérer les paramètres de sortie d'une procédure stockée en C# ?

Mary-Kate Olsen
Libérer: 2025-01-10 08:05:42
original
700 Les gens l'ont consulté

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

Récupération des paramètres de sortie des procédures stockées en C#

De nombreuses interactions avec des bases de données utilisent des procédures stockées pour gérer efficacement les données. Une exigence courante consiste à récupérer les paramètres de sortie, en particulier lorsqu'il s'agit de clés primaires générées automatiquement. Cet exemple montre comment gérer correctement les paramètres de sortie en C# lorsque vous travaillez avec des procédures stockées SQL Server.

Le problème survient souvent lorsque vous essayez de capturer la clé primaire nouvellement générée après une opération INSERT. La procédure stockée modifiée suivante fournit une solution :

<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>
Copier après la connexion

Cette procédure stockée accepte un numéro de contrat et renvoie l'ID nouvellement généré via le paramètre de sortie @NewId en utilisant SCOPE_IDENTITY().

Voici le code C# mis à jour pour récupérer ce paramètre de sortie :

<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>
Copier après la connexion

Ce code C# se connecte à la base de données, exécute la procédure stockée et récupère efficacement le paramètre de sortie @NewId, en le stockant dans la variable contractID. La clé primaire nouvellement générée est désormais disponible pour un traitement ultérieur au sein de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal