存储过程中可以定义输出变量,返回值,执行存储过程还能获得结果集。每个存储过程都有默认的返回值,默认值为0。下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。

      首先:在sql server management studio中查看输出参数,返回值以及结果集。本示例以Northwind数据库为例。

1create proc Employee 
2@Rowcount int=0
 output
3as

4begin
5SELECT *
 FROM [Northwind].[dbo].[Employees]
6set @Rowcount=
@@ROWCOUNT
7end

 

运行以上存储过程的代码如下:


 1USE [Northwind]
 2
GO
 3

 4DECLARE    @return_value int
,
 5        @MyOutput int

 6
 7EXEC    @return_value =
 [dbo].[Employee]
 8        @Rowcount =
 @MyOutput OUTPUT
 9

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

11
12SELECT    'Return返回的值' =
 @return_value
13

14GO

 

输出的结果如下:

        

可以看出是通过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。

posted on 2010-06-25 16:36  davidding  阅读(1080)  评论(0)    收藏  举报