从SQL Server存储过程返回值
本文关键字:返回值 存储过程 Server SQL | 更新日期: 2023-09-27 18:12:00
我想知道除了OUT
参数之外,是否还有其他方法可以从存储过程中获取数据到c#代码中。
select
查询和OUT
参数在存储过程中返回到c#代码。这是正确的吗?如果是,那么我如何选择应该返回哪些结果?在VB6代码而不是c#的情况下,答案是一样的吗?
是的,您可以使用OUT参数或SELECT从SP返回值给应用程序。
OUT参数通常用于单个值。SELECT可用于返回结果行。两者的组合可以在许多不同的变体中使用,例如SP将返回行,状态OUT参数可以指示所请求数据的行数或是否存在。
CREATE PROC usp_MySpecialSP
@conditionValue INT, @SPStatus INT OUT
AS
IF EXISTS(SELECT * FROM TableName WHERE column1=conditionValue)
BEGIN
SELECT @SPStatus=COUNT(*) FROM TableName WHERE column1=conditionValue
SELECT Column2, Column3, Column4 FROM TableName WHERE column1=conditionValue
END
ELSE
BEGIN
SELECT @SPStatus=0
END
GO
这里你可以拾取值,如果m_SPStatusReturned>0。
查看下面的MSDN文章如何从SP中提取返回的行http://msdn.microsoft.com/en-us/library/d7125bke.aspx
或使用SELECT的单个值http://msdn.microsoft.com/en-us/library/37hwc7kt.aspx
是的,这是正确的-你处理它的方法是:
-
要获得
OUT
参数,您需要使用ParameterDirection.Output
在 要获取存储过程中
SELECT
的结果集,需要使用SqlDataReader
或SqlDataAdapter
来获取结果(就像执行内联SQLSELECT
查询一样),实际上还有第三种方法:存储过程中的
RETURN
关键字—通常用于返回数值状态值。您可以通过使用ParameterDirection.ReturnValue
值的
SqlCommand
上定义SqlParameter
。SqlParameter
来捕获它。