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

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
DECLARE @o_id bigint
EXEC [nb_order_insert] @o_buyerid,@o_id output

2.RETURN过程返回值

复制代码

CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid @o_id bigint OUTPUT
)
AS
BEGIN
SET 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 int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [output

3.SELECT 数据集返回值

复制代码

CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO

复制代码

存储过程中的获取方法

(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["ConnStr"].ToString());
conn.open();
sqlCommand MyCommand = new sqlCommand("nb_order",conn);  //存储过程名字
MyCommand.CommandType = CommandType.StoredProcedure;   //指定类型为存储过程
MyCommand.Parameters.Add(new sqlParameter(@asqlDbType.Int));
MyCommand.Parameters["].Value = 10;
MyCommand.Parameters.Add(@b20;
MyCommand.Parameters.Add(@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();                //执行存储过程
Response.Write(MyCommand.Parameters["].Value.ToString()); //取得return的返回值

复制代码

2.获取Output输出参数值

复制代码

sqlConnection conn = ConnStr"nb_orderarameters.Add(@c ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["].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(@UNamearameters.AddWithValue(@UPassarameters.AddWithValue(@PassQuestionarameters.AddWithValue(@PassKeyarameters.AddWithValue(@Emailarameters.AddWithValue(@RNamearameters.AddWithValue(@Areaarameters.AddWithValue(@Addressarameters.AddWithValue(@ZipCodesarameters.AddWithValue(@Phonearameters.AddWithValue(@QQarameters.Add(@RETURN_VALUE"").Direction = ParameterDirection.ReturnValue;   //指定输出参数是返回值    
         try
         {
             conn.open();
             cmd.ExecuteNonQuery();                   //执行存储过程
             iRet = (int)cmd.Parameters["].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_UserAmountarameters.AddWithValue(@UIDarameters.Add(@AmountsqlDbType.Decimal).Direction=ParameterDirection.Output;  //利用Add方法为其添加名称,类型和输出参数
        try
        {
            conn.open();
            cmd.ExecuteNonQuery();
            iRet = (decimal)cmd.Parameters["].Value;  //取得存储过程中的输出参数
        }
        catch (sqlException ex)
        {
            throw ex;
        }
        finally
        {
            conn.Close();
        }
        return iRet;
    }

复制代码

C#取得结果集:

复制代码

string sqlw = string.Format(exec sp_UserInfo {0}sqlConn.GetDataSet(sqlw).Tables[0];

 static DataSet GetDataSet(string sql)
        {
            string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["].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;
        }

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

相关推荐