通过存储过程获取返回的刚刚插入的表的主键

未经同意不得转载

此主键可以是整型,字符型,由个人开发需求定义

   SqlParameter[] sp = {
                       new SqlParameter("@PID",PID),
                       new SqlParameter("@SizeType",SizeType),
                       new SqlParameter("@OrderQty",OrderQty),
                       new SqlParameter("@PlanedQty",PlanedQty),
                       new SqlParameter("@CreateBy",CreateBy),
                       new SqlParameter("@CreateDate",CreateDate) ,
                       new SqlParameter("@ReturnId",SqlDbType.VarChar,50)
                };

也就是在SqlParameter里面定义一个@ReturnId用来进行装返回值的,

    Connection.Open();
                //实例化数据库命令对象
                SqlCommand cmd = new SqlCommand(CommandText, Connection);
                try
                {
                    //设置命令执行类型
                    cmd.CommandType = type;
                    //设置SQL语句或存储过程参数
                    pars[6].Direction = ParameterDirection.Output;
                    cmd.Parameters.AddRange(pars);
                    //调用方法得到SqlDataReader对象
                    int ii = cmd.ExecuteNonQuery();
                    if (ii > 0) {
                        strId = cmd.Parameters["@ReturnId"].Value.ToString();
                    }
                    return strId;

上面的sp集合就是传到下面的pars,在pars的dui'y

	@PID nvarchar(50),
		@SizeType nvarchar(50),
		@OrderQty nvarchar(50),
		@PlanedQty nvarchar(50),
		@CreateBy nvarchar(50),
		@CreateDate nvarchar(50),
		@ReturnId nvarchar(50) Output

AS
Begin Tran abd
		--插入主表
		Insert Into A表(PID, Size, QrderQty, PlanedQty, CreateBy, CreateDate)
		Values (
	    @PID ,@SizeType ,@OrderQty ,@PlanedQty,@CreateBy ,@CreateDate  )
		
		--Select @ReturnId=SCOPE_IDENTITY()
		select 	@ReturnId=(select  TOP (1)  ASH_ID from A表 where  
	            PID=@PID and Size=@SizeType and QrderQty=@OrderQty 
                    and CreateBy=@CreateBy order by ASH_ID desc)
	
		If @@Error<> 0
		Begin
		Rollback Tran abd
		Return -1
		End
		else	
		begin
		Commit Tran 	
		end	 

其实主从表的时候也可以用到这个

记住,@ReturnId 是output类型的否则取不到值

猜你喜欢

转载自blog.csdn.net/penghao_1/article/details/83180860