我尝试实现对 Stored proc 的调用,并且 proc 返回稍后将使用的 ID。每次执行时,我都会将输出参数设为 -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()