未经同意不得转载
此主键可以是整型,字符型,由个人开发需求定义
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类型的否则取不到值