SqlServer获取存储过程的返回值

SqlServer获取存储过程的返回值,第1张

概述1.OUPUT参数返回值 CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerid int ,@o_id bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerid )VALUES (@o_buyerid )SET @o_id = @@IDENTITY 1.OUPUT参数返回值

CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerID int,@o_ID bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerID )VALUES (@o_buyerID )SET @o_ID = @@IDENTITYENDEND

存储过程中获得方法:

DECLARE @o_buyerID intDECLARE @o_ID bigintEXEC [nb_order_insert] @o_buyerID,@o_ID output

2.RETURN过程返回值

CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerID @o_ID bigint OUTPUT)ASBEGINSET NOCOUNT ON;IF(EXISTS(SELECT * FROM [Shop] WHERE [s_ID] = @o_buyerID ))BEGIN INSERT INTO [Order](o_buyerID ) VALUES (@o_buyerID )  SET @o_ID = @@IDENTITY  RETURN 1 — 插入成功返回1 END ELSE  0 — 插入失败返回0 END

存储过程中的获取方法

DECLARE @o_buyerID intDECLARE @o_ID bigintDECLARE @result bitEXEC @result = [output

3.SELECT 数据集返回值

CREATE PROCEDURE [dbo].[nb_order_select](@o_ID int)ASBEGINSET NOCOUNT ON;SELECT o_ID,o_buyerID FROM [Order]WHERE o_ID = @o_IDGO

存储过程中的获取方法

(1)、使用临时表的方法

 

CREATE table [dbo].[Temp]([o_ID] [bigint] IDENTITY(1,1) NOT FOR REPliCATION NOT NulL,[o_buyerID] [int] NOT NulL)INSERT [Temp] EXEC [nb_order_select] @o_ID– 这时 Temp 就是EXEC执行SELECT 后的结果集SELECT * FROM [Temp]DROP [Temp] — 删除临时表

1.获取Return返回值

sqlConnection conn = new sqlConnection(ConfigurationManager.ConnectionStrings[@H_403_186@"ConnStr@H_403_186@"].ToString());conn.open();sqlCommand MyCommand = new sqlCommand(@H_403_186@"@H_403_186@nb_order@H_403_186@",conn);  //存储过程名字MyCommand.CommandType = CommandType.StoredProcedure;   //指定类型为存储过程MyCommand.Parameters.Add(new sqlParameter(@H_403_186@@a].Value = 10;MyCommand.Parameters.Add(@b20;MyCommand.Parameters.Add(@return@H_403_186@"].Direction = ParameterDirection.ReturnValue;MyCommand.ExecuteNonquery();                //执行存储过程Response.Write(MyCommand.Parameters[@H_403_186@"].Value.ToString()); //取得return的返回值

2.获取Output输出参数值

sqlConnection conn = ConnStr@H_403_186@"nb_order@c@H_403_186@ ParameterDirection.Output;MyCommand.ExecuteNonquery();Response.Write(MyCommand.Parameters[@H_403_186@"].Value.ToString()); //指定取得存储过程的返回值

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

  public static int User_Add(User us)     {         int iRet;         sqlConnection conn = new sqlConnection(Conn_Str);         sqlCommand cmd = User_Add AdDWithValue可以指定名称和值,而Add需要指定名称,类型,再给value         cmd.Parameters.AdDWithValue(@H_403_186@@Uname).Direction = ParameterDirection.ReturnValue;   //指定输出参数是返回值             try         {             conn.open();             cmd.ExecuteNonquery();                   //执行存储过程             iRet = (int)cmd.Parameters[@H_403_186@"].Value;    //取得return的值         }         catch (sqlException ex)         {             throw ex;         }         finally         {             conn.Close();         }         return iRet;     }

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

decimal Cart_UserAmount(int UID)    {        decimal iRet;        sqlConnection conn = new sqlConnection(Conn_Str);        sqlCommand cmd = Cart_UserAmountParameterDirection.Output;  //利用Add方法为其添加名称,类型和输出参数        try        {            conn.open();            cmd.ExecuteNonquery();            iRet = (decimal)cmd.Parameters[@H_403_186@"].Value;  //取得存储过程中的输出参数        }        catch (sqlException ex)        {            throw ex;        }        finally        {            conn.Close();        }        return iRet;    }

C#取得结果集:

string sqlw = string.Format(@H_403_186@exec sp_UserInfo {0}0]; static DataSet GetDataSet(string sql)        {            string connStr = System.Configuration.ConfigurationManager.ConnectionStrings[@H_403_186@"].ToString();            sqlConnection conn = new sqlConnection(connStr);            sqlCommand cmd = new sqlCommand(sql,conn);            sqlDataAdapter da = new sqlDataAdapter(cmd);  //直接用sqlDataAdapter将结果集取出来放入dataset中            DataSet ds = new DataSet();            da.Fill(ds);            conn.Close();            cmd.dispose();            return ds;        }
总结

以上是内存溢出为你收集整理的SqlServer获取存储过程的返回值全部内容,希望文章能够帮你解决SqlServer获取存储过程的返回值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存