存储过程返回值

ALTER PROCEDURE dbo.spDelStudentByID
@id int,
@result int output
 /*
 (
 @parameter1 int = 5,
 @parameter2 datatype OUTPUT
 )
 */
AS
  SET NOCOUNT ON
  /*不返回计数当 SET NOCOUNT 为 ON 时,
  不返回计数(表示受 Transact-SQL 语句影响的行数)。
  当 SET NOCOUNT 为 OFF 时,返回计数。 如果存储过程中
  包含的一些语句并不返回许多实际的数据,
  则该设置由于大量减少了网络流量 */
  begin
  BEGIN TRANSACTION
  
  DELETE FROM T_Student where studentid=@id
  
  IF @@error=0
   begin
    COMMIT TRANSACTION 
    set @result = 1
   end
   
        ELSE
   begin
    ROLLBACK TRANSACTION
    set @result = 0
   end
 end
   

//执行上面的存储过程

public static int RunProcedure(string storedProcName, int ID)
    {
        using (SqlConnection connection = new SqlConnection(sqlconnection))
        {
            int result;
            connection.Open();
            SqlCommand command = new SqlCommand(storedProcName, connection);
            command.Connection = connection;
            command.CommandType = CommandType.StoredProcedure;
            SqlParameter p1 = new SqlParameter("@id", SqlDbType.Int);
            p1.Direction = ParameterDirection.Input;
            SqlParameter p2 = new SqlParameter("@result", SqlDbType.Int);
            p2.Direction = ParameterDirection.Output;
            p1.Value = ID;
            command.Parameters.Add(p1);
            command.Parameters.Add(p2);
            command.ExecuteNonQuery();
            result = (int)command.Parameters["@result"].Value;
            connection.Close();
            return result;
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值