-1

我有一个看起来像这样的 SP。试图在 C# 程序中从 SP 中捕获选择值

CREATE PROC sp_Dosomething
@Prefix nvarchar(2),
@Result nvarchar(8) output
AS
BEGIN
DECLARE @LastValue int
DECLARE @FirstValue int

insert into Table1(name,number) values('ssss','123')
@LastValue= @@Identity


insert into Table2(name,number) values('ssss','123')
@FirstValue = @@Identity

Select @LastValue as 'Table1Id', @FirstValue as 'Table2Id'
RETURN True
END

C#

  Response.Redirect("~/Pag1.aspx?Accountid=" + Table1Id+"&ClaimId=" + Table2Id,false);

问题:

Accountid = Table1Id  = @LastValue This is good

ClaimId= Table2Id = @FirstValue This is always zero
4

2 回答 2

0

我相信您需要使用SETSELECT设置变量的值。SCOPE_IDENTITY如果有任何可能更改最后一个标识值的触发器,您也可能需要使用:

insert into Table1(name,number) values('ssss','123')
SET @LastValue= SCOPE_IDENTITY()

insert into Table2(name,number) values('ssss','123')
SET @FirstValue = SCOPE_IDENTITY()
于 2013-08-14T02:26:04.930 回答
0

我不确定您要问什么,但是如果您的问题是关于如何从 SP 获取输出值,请在 ExecuteReader 之后而不是在您执行此操作之后像往常一样读取该变量。

int LastValue = int.press(Reader["LastValue"].ToString());
于 2013-08-14T01:21:08.753 回答