我是靠谱客的博主 高高棉花糖,最近开发中收集的这篇文章主要介绍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<DbParameterpara = 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.StoredProcedurepara);

        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<DbParameterpara = 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.StoredProcedurepara);

        //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); 

 

 

最后

以上就是高高棉花糖为你收集整理的SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...的全部内容,希望文章能够帮你解决SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部