1、控制器实现
/// <summary> /// 增删改 调用存储过程 /// </summary> /// <returns></returns> public async Task<ActionResult> AddORDelORUpdate() { string strUpdateTime =DateTime.Now.ToString(); SqlParameter[] Param = { //new SqlParameter("@UpdateTime", System.Data.SqlDbType.DateTime), new SqlParameter("@UpdateTime", System.Data.SqlDbType.VarChar), new SqlParameter("@rt_code", System.Data.SqlDbType.NVarChar, 20), new SqlParameter("@rt_msg", System.Data.SqlDbType.NVarChar, 200) //输出一定要定义字符类型长度 以免报错 }; if (string.IsNullOrEmpty(strUpdateTime)) { Param[0].Value = DBNull.Value; } else { Param[0].Value = strUpdateTime; } Param[1].Direction = ParameterDirection.Output; Param[2].Direction = ParameterDirection.Output; int numdata = await _DbContext.ExecuteNonQueryAsync("SP_AddDelUpdate", Param); string rtcode = Param[1].Value.ToString(); string rtmessage = Param[2].Value.ToString(); return AsResult.Success(); }
2、存储过程
create PROCEDURE [dbo].[SP_AddDelUpdate] ( @UpdateTime varchar(50), @rt_code varchar(20) output, @rt_msg nvarchar(200) output ) AS BEGIN ; begin transaction begin try --if(@UpdateTime!=null) BEGIN update TRA_BargainOrder_Test set UpdateTime=@UpdateTime ; INSERT INTO TRA_BargainOrder_Test( UserID, CityCode, UpdateTime, BargainOrderCode, CreateTime, OrderStatus ) VALUES ( 3, 'SZ', @UpdateTime, '2018888888888888', GETDATE() , 1 ); END; commit transaction set @rt_code= '0000'; set @rt_msg= '执行成功!'; return end try begin catch set @rt_code= '9999'; set @rt_msg= '失败,请稍候再试!'; rollback transaction end catch END