C# でのストアド プロシージャ出力パラメーターの使用
SQL Server ストアド プロシージャからデータを取得する場合、多くの場合、C# コードでストアド プロシージャの出力パラメータにアクセスする必要があります。ただし、これを効果的に行う方法を理解するのは難しい場合があります。
新しいレコードを usp_InsertContract
テーブルに挿入し、割り当てられた主キーを出力パラメータとして返す Contracts
という名前のストアド プロシージャを考えます。
<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 = Id From [dbo].[Contracts] where ContractNumber = @ContractNumber END</code>このストアド プロシージャを C# で実行するには、次のコード スニペットを使用できます:
<code class="language-csharp">using System.Data; using System.Data.SqlClient; public class StoredProcedureOutputParameterExample { public static void Main() { // 定义连接字符串并初始化连接。 string connectionString = "Server=localhost;Database=MyDatabase;User Id=sa;Password=mypassword;"; using (SqlConnection connection = new SqlConnection(connectionString)) { // 创建命令对象。 using (SqlCommand command = new SqlCommand("usp_InsertContract", connection)) { // 将命令类型设置为StoredProcedure。 command.CommandType = CommandType.StoredProcedure; // 向命令添加输入参数。 command.Parameters.Add(new SqlParameter("@ContractNumber", SqlDbType.VarChar, 7) { Value = "ABC123" }); // 向命令添加输出参数。 SqlParameter newIdParameter = new SqlParameter("@NewId", SqlDbType.Int) { Direction = ParameterDirection.Output }; command.Parameters.Add(newIdParameter); // 打开连接并执行命令。 connection.Open(); command.ExecuteNonQuery(); // 检索输出参数值。 int newId = (int)newIdParameter.Value; // 使用输出参数值。 Console.WriteLine($"New ID: {newId}"); } } } }</code>このコード スニペットでは、
オブジェクトと SqlConnection
オブジェクトを使用してデータベースへの接続を確立し、ストアド プロシージャを実行します。入力パラメータ SqlCommand
をコマンドに追加し、出力パラメータ @ContractNumber
を作成し、その @NewId
属性を Direction
に設定します。 ParameterDirection.Output
属性を使用して出力パラメータ値を取得できます。取得した値は C# コードで使用できます。 Value
以上がC# で SQL Server ストアド プロシージャから出力パラメータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。