Stored proc への呼び出しを実装しようとしましたが、proc は後で使用する ID を返します。実行するたびに、out パラメーターを -1 として取得します。以下は私のサンプルコードです:
OleDbCommand sqlStrProc = new OleDbCommand();
sqlStrProc.Connection = dbConn;
sqlStrProc.CommandText = "dbo.insert_test";
sqlStrProc.CommandType = CommandType.StoredProcedure;
sqlStrProc.Parameters.Add("@p_TestID", OleDbType.Integer, 255).Direction = ParameterDirection.Output;
sqlStrProc.Parameters.Add("@p_TestName", OleDbType.VarChar).Value = "Test";
sqlStrProc.Parameters.Add("@p_CreatedBy", OleDbType.VarChar).Value = "Test";
int personID = sqlStrProc.ExecuteNonQuery();
Row.outPersonID = personID;
personID は常に -1 です。ここで何が間違っていますか。助けてください..!!以下はストアドプロシージャコードです
CREATE PROCEDURE [dbo].[INSERT_TEST]
@p_TestID int OUTPUT,
@p_TestName varchar (50),
@p_CreatedBy varchar (100)
AS
SET NOCOUNT ON
INSERT INTO Test(
TestName,
CreatedBy)
VALUES
( @p_TestName,
@p_CreatedBy)
SELECT @p_TestID = SCOPE_IDENTITY()