/// <summary> /// 功能描述:修改数据(如果实体启用记录修改字段功能,则修改主键可用,否则请重新该函数并使用dal的UpdateEx函数进行处理) /// </summary> /// <param name="strJson">strJson</param> /// <returns>返回值</returns> public virtual string Update(string strJson) { TEntity entity = strJson.ToJsonObject <TEntity>(); try { Type type = entity.GetType(); //取的LstModifyFields PropertyInfo pi = type.GetProperty("LstModifyFields"); Dictionary <string, object> LstModifyFields = null; if (pi != null) { LstModifyFields = pi.GetValue(entity, null) as Dictionary <string, object>; } //是否修改内容包含主键 bool blnIsHas = false; bool blnUpdate = false; if (LstModifyFields != null && LstModifyFields.Count > 0) { List <string> lst = LstModifyFields.Keys.ToList(); MethodInfo miIsHasPrimaryKey = type.GetMethod("IsHasPrimaryKey", new Type[] { lst.GetType() }); blnIsHas = (bool)miIsHasPrimaryKey.Invoke(entity, new object[] { lst }); } if (blnIsHas) { //处理包含主键的修改 MethodInfo miCreateWhereDictWithModifyFields = type.GetMethod("CreateWhereDictWithModifyFields", new Type[] { }); Dictionary <string, object> lstDicWhere = (Dictionary <string, object>)miCreateWhereDictWithModifyFields.Invoke(entity, null); blnUpdate = dal.UpdateEx(entity, LstModifyFields.Keys.ToList(), lstDicWhere); } else { //普通修改 blnUpdate = dal.Update(entity, LstModifyFields == null ? null : LstModifyFields.Keys.ToList(), null); } if (pi != null) { MethodInfo mi = entity.GetType().GetMethod("ClearRecord"); if (mi != null) { mi.Invoke(entity, null); } } if (blnUpdate) { return(ExcuteMessage.Sucess(entity)); } else { return(ExcuteMessage.Error("更新失败。")); } } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:根据条件查询一条数据 /// </summary> /// <param name="strWhere">条件</param> /// <returns>返回值</returns> public virtual string SelectByWhere(string strWhere) { try { var entity = dal.QueryEntity(strWhere); return(ExcuteMessage.Sucess(entity)); } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:查询一条单表数据 /// </summary> /// <param name="strID">ID</param> /// <returns>数据对象</returns> public virtual string Select(string strID) { try { var entity = dal.QueryByID(strID); return(ExcuteMessage.Sucess(entity)); } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:查询数据 /// </summary> /// <param name="strSqlwhere">strSqlwhere</param> /// <returns>返回值</returns> public virtual string Search(string strSqlwhere) { try { List <TEntity> list = dal.QueryList(strSqlwhere); return(ExcuteMessage.Sucess(list)); } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:数据条数 /// </summary> /// <param name="strWhere">strWhere</param> /// <returns>返回值</returns> public string SelectCount(string strWhere) { try { int intCount = dal.SelectCount(strWhere); return(ExcuteMessage.Sucess(intCount)); } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:根据条件删除 /// </summary> /// <param name="strWhere">strJson</param> /// <returns>返回值</returns> public virtual string DeleteByWhere(string strWhere) { try { dal.Delete(strWhere); return(ExcuteMessage.Sucess(true)); } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:删除数据 /// </summary> /// <param name="strJson">strJson</param> /// <returns>返回值</returns> public virtual string Delete(string strJson) { TEntity entity = strJson.ToJsonObject <TEntity>(); try { dal.Delete(entity); return(ExcuteMessage.Sucess(entity)); } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:获取缓存数据 /// </summary> /// <param name="strJson">strJson</param> /// <returns>返回值</returns> public string GetCacheSource(string strJson) { if (string.IsNullOrEmpty(strJson)) { return(ExcuteMessage.Error("参数为空。")); } Dictionary <string, object> lstParas = strJson.ToJsonObject <Dictionary <string, object> >(); string strProperty = lstParas["Property"].ToString(); string strTableName = lstParas["table"].ToString(); string strWhere = lstParas["where"].ToString(); Type type = Assembly.Load("JZ.Cache").GetType("JZ.Cache.CacheHelper"); PropertyInfo pi = type.GetProperty(strProperty); if (pi == null) { if (string.IsNullOrWhiteSpace(strTableName)) { return(ExcuteMessage.Sucess(new DataTable())); } //不存在缓存对象 PublicRepository dal = new PublicRepository(); DataTable dt = dal.GetTableByName(strTableName, strWhere); return(ExcuteMessage.Sucess(dt)); } else if (pi.GetValue(null, null) == null) { if (string.IsNullOrWhiteSpace(strTableName)) { return(ExcuteMessage.Sucess(new DataTable())); } //缓存无值 PublicRepository dal = new PublicRepository(); DataTable dt = dal.GetTableByName(strTableName, strWhere); pi.SetValue(null, dt.ToJsonHasNull().ToJsonObject(pi.PropertyType), null); return(ExcuteMessage.Sucess(dt)); } else { //返回缓存内容 return(ExcuteMessage.Sucess(pi.GetValue(null, null))); } }
public virtual string UpdateLst(string strJson) { List <TEntity> entity = strJson.ToJsonObject <List <TEntity> >(); try { if (dal.Update(entity.ToArray()) > 0) { return(ExcuteMessage.Sucess("更新成功")); } else { return(ExcuteMessage.Error("更新失败。")); } } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:批量插入 /// </summary> /// <param name="strJson">strJson</param> /// <returns>返回值</returns> public virtual string InsertLst(string strJson) { List <TEntity> entity = strJson.ToJsonObject <List <TEntity> >(); try { if (dal.Insert(entity.ToArray())) { return(ExcuteMessage.Sucess("新增成功")); } else { return(ExcuteMessage.Error("新增失败。")); } } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:新增数据 /// </summary> /// <param name="strJson">strJson</param> /// <returns>返回值</returns> public virtual string Insert(string strJson) { TEntity entity = strJson.ToJsonObject <TEntity>(); try { if (dal.Insert(entity)) { return(ExcuteMessage.Sucess(entity)); } else { return(ExcuteMessage.Error("新增失败。")); } } catch (Exception ex) { return(ExcuteMessage.ErrorOfException(ex)); } }
/// <summary> /// 功能描述:数据库当前时间 /// </summary> /// <returns>数据库当前时间</returns> public string GetDBTime() { DateTime dt = dal.GetDBTime(); return(ExcuteMessage.Sucess(dt)); }