微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver获取存储过程返回值

1.OUPUT参数返回值

CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int,@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
END

存储过程中获得方法

DECLARE   @o_buyerid int
@o_id bigint EXEC   [ nb_order_insert ] ,@o_id  output

2.RETURN过程返回值

CREATE PROCEDURE [dbo].nb_order_insert(

@o_buyeridint ,

@o_idbigint OUTPUT

)

AS

BEGIN

SET NOCOUNT ON;

IF(EXISTS(SELECT *FROMShopWHEREs_id=@o_shopid))

BEGIN
INSERTINTOOrder(o_buyerid )

VALUES ( )

 @@IDENTITY RETURN 1 — 插入成功返回1

END ELSE  0 — 插入失败返回0

END

存储过程中的获取方法


@result bit   =  

3.SELECT 数据集返回值

nb_order_selectint

)

AS  o_id,o_buyerid ]  o_id @o_id GO

存储过程中的获取方法
(1)、使用临时表的方法

CREATE TABLE dbo . Temp (

o_id bigint IDENTITY ( 1 NOT FOR REPLICATION NULL

o_buyerid int

)

INSERT nb_order_select

– 这时 
Temp  就是EXEC执行SELECT 后的结果集

SELECT * FROM DROP  — 删除临时表

(2)、速度不怎么样.(不推荐)

from openrowset (’provider_name ' ' Trusted_Connection yes’,0)">exec nb_order_select’)





1.获取Return返回值

//存储过程
//Create PROCEDURE MysqL
//     @a int,
//     @b int
//AS
//     return @a + @b
//GO
sqlConnection conn = new sqlConnection(ConfigurationManager.ConnectionStrings["LocalsqlServer"].ToString());
conn.open();
sqlCommand MyCommand = new sqlCommand("MysqL",conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new sqlParameter("@a",sqlDbType.Int));
MyCommand.Parameters["@a"].Value = 10;
MyCommand.Parameters.Add(new sqlParameter("@b",sqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new sqlParameter("@return",sqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());


2.获取Output输出参数值

//存储过程
//Create PROCEDURE MysqL
//     @a int,
//     @b int,
//     @c int output
//AS
//     Set @c = @a + @b
//GO
sqlConnection conn = new sqlConnection(ConfigurationManager.ConnectionStrings["LocalsqlServer"].ToString());
conn.open();
sqlCommand MyCommand = new sqlCommand("MysqL",sqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new sqlParameter("@b",sqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new sqlParameter("@c",sqlDbType.Int));
MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());

C#接收存储过程返回值:

     public static int User_Add(User us)
     {
         int iRet;
         sqlConnection conn = new sqlConnection(Conn_Str);
         sqlCommand cmd = new sqlCommand("User_Add",conn);
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Parameters.AddWithValue("@UName",us.UName);
         cmd.Parameters.AddWithValue("@UPass",us.UPass);
         cmd.Parameters.AddWithValue("@PassQuestion",us.PassQuestion);
         cmd.Parameters.AddWithValue("@PassKey",us.PassKey);
         cmd.Parameters.AddWithValue("@Email",us.Email);
         cmd.Parameters.AddWithValue("@RName",us.RName);
         cmd.Parameters.AddWithValue("@Area",us.Area);
         cmd.Parameters.AddWithValue("@Address",us.Address);
         cmd.Parameters.AddWithValue("@ZipCodes",us.ZipCodes);
         cmd.Parameters.AddWithValue("@Phone",us.Phone);
         cmd.Parameters.AddWithValue("@QQ",us.QQ);
         cmd.Parameters.Add("@RETURN_VALUE","").Direction = ParameterDirection.ReturnValue;       
         try
         {
             conn.open();
             cmd.ExecuteNonQuery();
             iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;
         }
         catch (sqlException ex)
         {
             throw ex;
         }
         finally
         {
             conn.Close();
         }
         return iRet;
     }

C#接收存储过程输出参数:

    public static decimal Cart_UserAmount(int UID)     {         decimal iRet;         sqlConnection conn = new sqlConnection(Conn_Str);         sqlCommand cmd = new sqlCommand("Cart_UserAmount",conn);         cmd.CommandType = CommandType.StoredProcedure;         cmd.Parameters.AddWithValue("@UID",UID); cmd.Parameters.Add("@Amount",sqlDbType.Decimal).Direction=ParameterDirection.Output;         try         {             conn.open();             cmd.ExecuteNonQuery();             iRet = (decimal)cmd.Parameters["@Amount"].Value;         }         catch (sqlException ex)         {             throw ex;         }         finally         {             conn.Close();         }         return iRet;     }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐