嗨,我正在使用vs 2008在vb.net中做一个winforms应用程序。我有一个数据库与单个表,它有两列,在它和一个存储过程。存储过程应该接受一个输入值,将该值与表中的一列进行匹配,然后从另一列返回相应的值;除了它doesnt.It返回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)
,但我还是没有得到我所期望的价值。
如果你知道你想返回一个值,为什么不使用标量函数呢? – 2010-10-11 15:48:38
你有没有试过直接在SQL服务器上运行sp? – DForck42 2010-10-11 21:02:31