Utilisation des paramètres de sortie de procédure stockée en C#
Lors de la récupération de données à partir d'une procédure stockée, vous devez souvent accéder aux paramètres de sortie pour obtenir des informations supplémentaires. Dans cet exemple, un programme C# rencontre des problèmes en essayant de récupérer la clé primaire renvoyée par la procédure stockée usp_InsertContract.
La procédure stockée est légèrement modifiée pour utiliser SCOPE_IDENTITY(), comme indiqué ci-dessous :
<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>
Le code C# a également été ajusté pour récupérer correctement la valeur de sortie :
<code class="language-csharp">// 打开连接并执行存储过程 conn.Open(); cmd.ExecuteNonQuery(); // 从@NewId读取输出值 int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value); conn.Close();</code>
Cette modification devrait résoudre le problème en garantissant que la clé primaire est correctement renvoyée en paramètre de sortie et accessible dans le programme C#.
Remarque : assurez-vous de vérifier que la table Contrats contient des colonnes avec l'attribut IDENTITY configuré correctement. Les colonnes IDENTITY manquantes peuvent également rendre difficile l'obtention de la valeur de la clé primaire.
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!