そのように見えるストアドプロシージャがあります。
ALTER PROCEDURE dbo.addPackage(
@PackageStatus VARCHAR(50) = null,
@OrgCode VARCHAR(50) = null,
@SystemID VARCHAR(50) = null,
@ID int OUTPUT
)
AS
BEGIN
insert into package_table
(
PackageStatus,
OrgCode,
SystemID
)
values
(@PackageStatus,
@OrgCode,
@SystemID
)
SET @ID = SCOPE_IDENTITY()
END
そして私の関数は次のパラメータをsqlコマンドに追加して呼び出しますsqlCommand.ExecuteNonQuery();
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@PackageStatus", package.PackageStatus));
parameters.Add(new SqlParameter("@OrgCode", package.OrgCode));
parameters.Add(new SqlParameter("@SystemID", package.SystemID));
SqlParameter outParameter = new SqlParameter("@ID", SqlDbType.Int);
outParameter.Direction = ParameterDirection.Output;
parameters.Add(outParameter);
しかし、outパラメータが宣言されていて、ストアドプロシージャが終了する前に設定しているにもかかわらず、ストアドポークエデュアevneから0が返され続けています。IDの自動インクリメント値を使用してレコードが正常に追加されましたが、出力パラメーターを取得してもIDは返されません。0に設定されます。
助言がありますか?