存储过程中可以定义输出变量,返回值,执行存储过程还能获得结果集。每个存储过程都有默认的返回值,默认值为0。下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。
首先:在sql server management studio中查看输出参数,返回值以及结果集。本示例以Northwind数据库为例。
1
create proc Employee
2
@Rowcount int=0 output
3
as
4
begin
5
SELECT * FROM [Northwind].[dbo].[Employees]
6
set @Rowcount=@@ROWCOUNT
7
end
create proc Employee 2
@Rowcount int=0 output3
as4
begin5
SELECT * FROM [Northwind].[dbo].[Employees]6
set @Rowcount=@@ROWCOUNT7
end
运行以上存储过程的代码如下:
1
USE [Northwind]2
GO3

4
DECLARE @return_value int,5
@MyOutput int6

7
EXEC @return_value = [dbo].[Employee]8
@Rowcount = @MyOutput OUTPUT9

10
SELECT @MyOutput as N'输出参数的值'11

12
SELECT 'Return返回的值' = @return_value13

14
GO
输出的结果如下:
可以看出是通过EXEC @return_value = [dbo].[Employee] @Rowcount = @MyOutput OUTPUT中的return_value变量来获得返回值,而用MyOutput变量来获得了输出变量值,此处的MyOutput变量相当于引用传递!
接下来将讨论ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。
1
protected void Page_Load(object sender, EventArgs e)2
{3
SqlConnection con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=1;");4
SqlCommand cmd = new SqlCommand();5
cmd.Connection = con;6
cmd.CommandText="Employee";7
cmd.CommandType = CommandType.StoredProcedure;8
SqlParameter para = new SqlParameter("@Rowcount", SqlDbType.Int, 4);9
para.Direction = ParameterDirection.Output;10
cmd.Parameters.Add(para);11
cmd.Parameters.Add("@return_value", SqlDbType.Int, 4);12
cmd.Parameters["@return_value"].Direction = ParameterDirection.ReturnValue;13
con.Open();14
cmd.ExecuteNonQuery();15
Response.Write(cmd.Parameters["@Rowcount"].Value.ToString()+"<br/>");16
Response.Write(cmd.Parameters["@return_value"].Value.ToString());17
}此处定义了Rowcount输出变量,以及return_value返回值变量。输出Roucount输出变量的值为9,而return_value的值为0。

浙公网安备 33010602011771号