gpt4 book ai didi

sql-server - 从存储过程返回值

转载 作者:行者123 更新时间:2023-12-04 00:37:09 29 4
gpt4 key购买 nike

您好,我正在使用 vs 2008 在 vb.net 中做一个 winforms 应用程序。我有一个只有一个表的数据库,其中有两列和一个存储过程。存储过程应该获取一个输入值,将该值与表中的一列进行匹配,然后从另一列返回相应的值;除了它不。它返回 1 或 0 请谁能告诉我为什么

ALTER PROCEDURE dbo.getgamenumber(@outputnumber bigint OUTPUT,
@inputnumber bigint)
AS

SELECT @outputnumber = ggnumber
FROM statstable
WHERE gindex = @inputnumber

RETURN @outputnumber

存储过程是这样调用的

With cmdgetgame
.CommandType = CommandType.StoredProcedure
.CommandText = "getgamenumber"
.Parameters.Add("@outputnumber", SqlDbType.BigInt).Value = outputnumber
.Parameters("@outputnumber").Direction = ParameterDirection.Output
.Parameters.AddWithValue("@inputnumber", inputvalue)
returnvalue = cmd.ExecuteScalar()
End With

感谢所有的帮助。

抱歉让我感到困惑,我的 vb 代码现在看起来像这样

 With cmdgetgame
.CommandType = CommandType.StoredProcedure
.CommandText = "getgamenumber"
.Parameters.Add("@outputnumber", SqlDbType.BigInt).Value = outputnumber
.Parameters("@outputnumber").Direction = ParameterDirection.Output
.Parameters.AddWithValue("@inputnumber", inputvalue)
cmd.ExecuteNonQuery()
returnvalue = cmdgetgame.Parameters("@outputnumber").Value
End With

我的存储过程是这样的

ALTER PROCEDURE dbo.getgamenumber
( @outputnumber bigint ,
@inputnumber bigint)
AS
SELECT ggnumber
FROM statstable
WHERE (gindex = @inputnumber)

但我仍然没有得到我期望的值。

最佳答案

您似乎试图将 @outputnumber 用作输出参数和返回值。

当您将它设置为输出参数时,您不需要在 VB.NET 中为该参数设置值。

那么,您就不需要 return 语句了。 (无论如何,您不应该在 T-SQL 中使用 RETURN 来获取值)

获取输出值:

cmd.ExecuteNonQuery()
returnvalue = cmdgetgame.Parameters("@outputnumber").Value

关于sql-server - 从存储过程返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3907681/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com