/// <summary> /// 新增对象 /// </summary> /// <param name="trans">事物</param> /// <returns></returns> public MFReturnValue <object> Create(SqlTransaction trans, T entity) { SqlParameter[] paramArray = ValueParas(entity); paramArray[0].Direction = ParameterDirection.Output; paramArray[paramArray.Length - 2].Direction = ParameterDirection.Output; paramArray[paramArray.Length - 1].Direction = ParameterDirection.ReturnValue; if (trans.IsNullOrEmpty()) { MFSqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, "{0}_Create".FormatWith(this.TableName), paramArray); } else { MFSqlHelper.ExecuteNonQuery(trans, CommandType.StoredProcedure, "{0}_Create".FormatWith(this.TableName), paramArray); } int nReturnCode = paramArray[paramArray.Length - 1].Value.ToInt(); MFReturnValue <object> val = new MFReturnValue <object>(); if (nReturnCode < 0) { val.HasError = true; } else { val.HasError = false; val.OutputValues["Id"] = paramArray[0].Value.ToInt(); } val.Message = paramArray[paramArray.Length - 2].Value.ObjectToString(); val.ReturnCode = nReturnCode; return(val); }
/// <summary> /// 删除指定编号的对象 /// </summary> /// <param name="id">编号</param> /// <param name="trans">事物</param> /// <returns></returns> public MFReturnValue <object> Delete(int?id, SqlTransaction trans) { MFReturnValue <object> val = new MFReturnValue <object>(); int nId; if (id.HasValue) { nId = id.Value; } else { val.HasError = true; val.Message = "无效主键"; return(val); } SqlParameter[] paramArray = new SqlParameter[] { new SqlParameter("@Id", nId), new SqlParameter("@RetMsg", SqlDbType.NVarChar, 255), new SqlParameter("@ReturnValue", SqlDbType.Int) }; paramArray[paramArray.Length - 2].Direction = ParameterDirection.Output; paramArray[paramArray.Length - 1].Direction = ParameterDirection.ReturnValue; if (trans.IsNullOrEmpty()) { MFSqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, "{0}_Delete".FormatWith(this.TableName), paramArray); } else { MFSqlHelper.ExecuteNonQuery(trans, CommandType.StoredProcedure, "{0}_Delete".FormatWith(this.TableName), paramArray); } int nReturnCode = paramArray[paramArray.Length - 1].Value.ToInt(); if (nReturnCode < 0) { val.HasError = true; } else { val.HasError = false; } val.Message = paramArray[paramArray.Length - 2].Value.ObjectToString(); val.ReturnCode = nReturnCode; return(val); }
/// <summary> /// 删除 在事务中 /// </summary> /// <param name="id"></param> /// <param name="transaction"></param> /// <returns></returns> public virtual MFReturnValue <object> Delete(int?id, SqlTransaction transaction) { MFReturnValue <object> retValue = new MFReturnValue <object>(); int nId; if (id.HasValue) { nId = id.Value; } else { retValue.HasError = true; retValue.Message = "无效的主键"; return(retValue); } SqlParameter[] parameterArr = new SqlParameter[] { new SqlParameter("@Id", nId), new SqlParameter("@RetMsg", SqlDbType.NVarChar, 255), new SqlParameter("@ReturnValue", SqlDbType.Int) }; parameterArr[parameterArr.Length - 2].Direction = ParameterDirection.Output; parameterArr[parameterArr.Length - 1].Direction = ParameterDirection.ReturnValue; if (transaction.IsNullOrEmpty()) { MFSqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, string.Format("{0}_Delete", this.TableName), parameterArr); } else { MFSqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, String.Format("{0}_Delete", this.TableName), parameterArr); } int returnCode = parameterArr[parameterArr.Length - 1].Value.ToInt(); if (returnCode < 0) { retValue.HasError = true; } else { retValue.HasError = false; } return(retValue); }
/// <summary> /// 创建对象,存在事务中 /// </summary> /// <param name="transaction"></param> /// <param name="entity"></param> /// <returns></returns> public virtual MFReturnValue <object> Create(SqlTransaction transaction, T entity) { //设置参数 SqlParameter[] parameterArray = ValueParas(entity); //第一个参数是id,所以传入的参数是无效的,类似out parameterArray[0].Direction = ParameterDirection.Output; //倒数第二个参数(RetMsg),闯入的参数是无效的,类似 out parameterArray[parameterArray.Length - 2].Direction = ParameterDirection.Output; //最后一个参数是存储过程的返回值 parameterArray[parameterArray.Length - 1].Direction = ParameterDirection.ReturnValue; //执行没有事务的查询 if (transaction.IsNullOrEmpty()) { MFSqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, string.Format("{0}_Create", this.TableName), parameterArray); } //执行有事务的查询 else { MFSqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, string.Format("{0}_Create", this.TableName), parameterArray); } //获取存储过程返回值 int returnCode = parameterArray[parameterArray.Length - 1].Value.ToInt(); //设置返回值 MFReturnValue <object> val = new MFReturnValue <object>(); if (returnCode < 0) { val.HasError = true; } else { val.HasError = false; val.OutputValues["Id"] = parameterArray[0].Value.ToInt(); } val.Message = parameterArray[parameterArray.Length - 2].Value.ObjectToString(); val.ReturnCode = returnCode; return(val); }