每个存储过程都有默认的返回值,默认值为0。下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。 首先:在sql server management studio中查看输出参数,返回值以及结果集。本示例以Northwind数据库为例。 <div class="codetitle"><a style="CURSOR: pointer" data="8709" class="copybut" id="copybut8709" onclick="doCopy('code8709')"> 代码如下:<div class="codebody" id="code8709"> create proc Employee @Rowcount int=0 output as begin SELECT * FROM [Northwind].[dbo].[Employees] set @Rowcount=@@ROWCOUNT end 运行以上存储过程的代码如下: 运行代码 <div class="codetitle"><a style="CURSOR: pointer" data="423" class="copybut" id="copybut423" onclick="doCopy('code423')"> 代码如下:<div class="codebody" id="code423"> USE [Northwind] GO DECLARE @return_value int, @MyOutput int EXEC @return_value = [dbo].[Employee] @Rowcount = @MyOutput OUTPUT SELECT @MyOutput as N'输出参数的值' SELECT 'Return返回的值' = @return_value GO 输出的结果如下:
 可以看出是通过EXEC @return_value = [dbo].[Employee] @Rowcount = @MyOutput OUTPUT中的return_value变量来获得返回值,而用MyOutput变量来获得了输出变量值,此处的MyOutput变量相当于引用传递! 接下来将讨论ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。 <div class="codetitle"><a style="CURSOR: pointer" data="78397" class="copybut" id="copybut78397" onclick="doCopy('code78397')"> 代码如下:<div class="codebody" id="code78397"> protected void Page_Load(object sender,EventArgs e) { SqlConnection con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=1;"); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText="Employee"; cmd.CommandType = CommandType.StoredProcedure; SqlParameter para = new SqlParameter("@Rowcount",SqlDbType.Int,4); para.Direction = ParameterDirection.Output; cmd.Parameters.Add(para); cmd.Parameters.Add("@return_value",4); cmd.Parameters["@return_value"].Direction = ParameterDirection.ReturnValue; con.Open(); cmd.ExecuteNonQuery(); Response.Write(cmd.Parameters["@Rowcount"].Value.ToString()+" "); Response.Write(cmd.Parameters["@return_value"].Value.ToString()); } 此处定义了Rowcount输出变量,以及return_value返回值变量。输出Roucount输出变量的值为9,而return_value的值为0。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|