SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...

存储过程有三种返回:   

1.   用return返回数字型数据   

2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)   

3.   直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集

 

 

方法一:用return返回数字型数据 

1. 创建存储过程

--SQLSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE checkstate 

@param VARCHAR(11)

AS

IF (

       SELECT StateProvince

       FROM   Person.vAdditionalContactInfo

       WHERE  ContactID = @param

   ) = 'WA'

    RETURN 1

ELSE

    RETURN 2;

GO

 

2. 在存储过程中调用

DECLARE @return_status INT;

EXEC @return_status = checkstate '9';  --将存储过程返回值赋给@return_status

SELECT 'Return Status' = @return_status;

GO

 

3. VS中调用

 List<DbParameter> para = new List<DbParameter>();

        para.Add(new SqlParameter("@param", 9));

 

        SqlParameter pa = new SqlParameter();

        pa.ParameterName = "@return";

        pa.SqlDbType = SqlDbType.Int;

        pa.Direction = ParameterDirection.ReturnValue;

        para.Add(pa);

 

        int i = DBHelper.ExecuteSql("checkstate", CommandType.StoredProcedure, para);

        Response.Write(para[1].Value.ToString());

 

 

 

 

 

方法二:用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)   

1. 创建存储过程

--SQLSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE OutPutValue 

@param VARCHAR(11),

@param2 VARCHAR(11) OUTPUT

AS

IF (

       SELECT StateProvince

       FROM   Person.vAdditionalContactInfo

       WHERE  ContactID = @param

   ) = 'WA'

   SET @param2='Good'

ELSE

   SET @param2='Bad'

GO

2. 在存储过程中调用

DECLARE @param1 NVARCHAR(100)

DECLARE @param2 NVARCHAR(100)

SET @param1='9'

EXEC OutPutValue '9',@param2 OUTPUT

SELECT @param2

 

3. VS中调用

     List<DbParameter> para = new List<DbParameter>();

        para.Add(new SqlParameter("@param", "9"));

        SqlParameter pa = new SqlParameter();

        pa.Direction = ParameterDirection.Output;

        pa.ParameterName = "@param2";

        pa.Size = 11;

        para.Add(pa);

 

        int i = DBHelper.ExecuteSql("OutPutValue ", CommandType.StoredProcedure, para);

 

        //OutPut返回值

        Response.Write(para[1].Value.ToString());  //输出返回值

 

 

 

 

 

 

 

方法三:直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集  

1. 创建存储过程

--SQLSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE ReturnDataTable

AS

BEGIN

SELECT * FROM Person.vAdditionalContactInfo

END 

GO

 

2. 在存储过程中调用

EXEC ReturnDataTable

 

3. VS中调用

//存储过程返回结果集可存放在DataTable

 DataTable dt = DBHelper.GetDataTable("ReturnDataTable", CommandType.StoredProcedure); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值