/// <summary> /// 条件 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="t"></param> /// <param name="OperType">操作类型</param> /// <param name="Exp">条件</param> /// <param name="Sort">排序</param> /// <returns></returns> public static GDModel.MergerModel GTCodition <T>(this T t, GTEnum.OperationType OperType, Expression <Func <T, bool> > Exp = null, string Sort = null) where T : new() { PropertyInfo[] propertys = t.GetType().GetProperties(); string SQLStr = string.Empty; string Where = (Exp == null ? "" : Exp.DealExpress()); string TableName = typeof(T).Name; if (OperType == GTEnum.OperationType.Add || OperType == GTEnum.OperationType.Update) { List <string> FileName = new List <string>(); List <string> Value = new List <string>(); string DbValue = string.Empty; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs != null && !objAttrs.IsKey) { object obj = pi.GetValue(t, null); if (obj != null) { if (OperType == GTEnum.OperationType.Add) { FileName.Add(pi.Name); Value.Add(pi.GetValue(t, null).DbTypeStr()); } else { FileName.Add($"{pi.Name}={pi.GetValue(t, null).DbTypeStr()}"); } } } } if (OperType == GTEnum.OperationType.Add) { SQLStr = $"INSERT INTO {TableName}({string.Join(",", FileName)}) values({string.Join(",", Value)})"; } else { SQLStr = $"UPDATE {TableName} set {string.Join(",", FileName)} where 1=1" + (string.IsNullOrEmpty(Where) ? "" : " and " + Where); } } else { SQLStr = $"DELETE FROM {TableName} where 1=1 {Where}"; } return(new GDModel.MergerModel() { SQLStr = SQLStr, Entity = t }); }
/// <summary> /// 获取主键 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <returns></returns> public string GDGetIsIncrease <T>(T Model) { string Keys = string.Empty; PropertyInfo[] propertys = Model.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs.IsKey) { Keys = pi.Name; continue; } } return(Keys); }
/// <summary> /// 存在多条数据的Parameter /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <param name="Type"></param> /// <param name="编号"></param> /// <returns></returns> public List <GDModel.SQLModel> GDGetPropertys <T>(T Model, SQLEnum.DataBaseType Type, int Nums) { List <GDModel.SQLModel> ListParameter = new List <GDModel.SQLModel>(); PropertyInfo[] propertys = Model.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs != null) { GDModel.SQLModel sqlmodel = new GDModel.SQLModel(); object obj = pi.GetValue(Model, null); if (obj != null) { object o = null; switch (Type) { case SQLEnum.DataBaseType.SqlServer: o = new SqlParameter("@" + pi.Name + Nums, obj); break; case SQLEnum.DataBaseType.MySql: o = new MySqlParameter("@" + pi.Name + Nums, obj); break; case SQLEnum.DataBaseType.Sqlite: o = new SQLiteParameter("@" + pi.Name + Nums, obj); break; default: break; } ListParameter.Add(new GDModel.SQLModel() { Field = pi.Name, Value = obj, ValueStr = obj.ToValStr(), Parameter = o, ParameterName = "@" + pi.Name + Nums, IsKey = objAttrs.IsKey, IsIncrease = (objAttrs.IsKey && objAttrs.IsIncrease) }); } } } return(ListParameter); }
/// <summary> /// 泛型查询 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <returns></returns> public static List <T> MySQLGTMListByParameter <T>(this T Model) where T : new() { MySQLDBHeper Helper = new MySQLDBHeper(); List <T> lt = new List <T>(); List <MySqlParameter> Parameter = new List <MySqlParameter>(); PropertyInfo[] propertys = Model.GetType().GetProperties(); string ModelName = Model.GetType().Name; List <string> Condition = new List <string>(); string DbValue = string.Empty; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs != null) { object obj = pi.GetValue(Model, null); if (obj == null) { DbValue = "''"; } else { DbValue = obj.DbTypeStr(); } Parameter.Add(new MySqlParameter("@" + pi.Name, DbValue)); Condition.Add("and " + pi.Name + "=@" + pi.Name); } } DataTable dt = Helper.BsGetDataTable("select * from " + ModelName + " where 1=1 " + string.Join(" ", Condition)); if (dt == null || dt.Rows.Count == 0) { return(null); } else { for (int i = 0; i < dt.Rows.Count; i++) { lt.Add(dt.Rows[i].ToModel <T>()); } } return(lt); }
/// <summary> /// 批量新增 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <returns></returns> public static bool MySQLListAdd <T>(this List <T> Model) where T : new() { MySQLDBHeper Helper = new MySQLDBHeper(); bool r = true; List <string> Listr = new List <string>(); string ModelName = string.Empty; string ColumName = string.Empty; string DbValue = string.Empty; foreach (T item in Model) { PropertyInfo[] propertys = item.GetType().GetProperties(); ModelName = item.GetType().Name; List <string> FileName = new List <string>(); List <string> Value = new List <string>(); foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs == null) { r = false; } else { r = true;// objAttrs.IsAdd; } if (r) { object obj = pi.GetValue(Model, null); if (obj == null) { DbValue = "''"; } else { DbValue = obj.DbTypeStr(); } FileName.Add(pi.Name); Value.Add(DbValue); } } ColumName = string.Join(",", FileName); Listr.Add("(" + string.Join(",", Value) + ")"); } return(Helper.MoreAdd(ColumName, string.Join(",", Listr), ModelName)); }
/// <summary> /// 根据主键进行更新 /// </summary> /// <typeparam name="T">泛型类型</typeparam> /// <param name="Model">对象</param> /// <returns></returns> public static bool MySQLUpdate <T>(this T Model) where T : new() { MySQLDBHeper Helper = new MySQLDBHeper(); PropertyInfo[] propertys = Model.GetType().GetProperties(); string ModelName = Model.GetType().Name; string KeyStr = string.Empty; string DbValue = string.Empty; List <string> FileName = new List <string>(); bool r = true; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs == null) { r = false; } else { r = true;// objAttrs.IsUpdate; if (objAttrs.IsKey) { object obj = pi.GetValue(Model, null); if (obj == null) { DbValue = "''"; } else { DbValue = obj.DbTypeStr(); } KeyStr = " and " + pi.Name + "=" + DbValue; } } if (r) { FileName.Add(pi.Name + "=" + DbValue); } } return(Helper.Update(string.Join(",", FileName), KeyStr, ModelName)); }
/// <summary> /// 插入一条记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <returns></returns> public static bool MySQLAddByParameter <T>(this T Model) where T : class { MySQLDBHeper Helper = new MySQLDBHeper(); PropertyInfo[] propertys = Model.GetType().GetProperties(); string tyu = Model.GetType().Name; List <MySqlParameter> ListParameter = new List <MySqlParameter>(); List <string> FileName = new List <string>(); List <string> Value = new List <string>(); bool r = true; string DbValue = string.Empty; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs == null) { r = false; } else { r = true;// objAttrs.IsAdd; } if (r) { object obj = pi.GetValue(Model, null); if (obj == null) { DbValue = "''"; } else { DbValue = obj.DbTypeStr(); } FileName.Add(pi.Name); Value.Add("@" + pi.Name); ListParameter.Add(new MySqlParameter("@" + pi.Name, DbValue)); } } return(Helper.Add(string.Join(",", FileName), string.Join(",", Value), Model.GetType().Name, ListParameter.ToArray())); }
/// <summary> /// 新增返回自增Id /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <returns></returns> public static int MySQLReturnAddId <T>(this T Model) where T : new() { MySQLDBHeper Helper = new MySQLDBHeper(); PropertyInfo[] propertys = Model.GetType().GetProperties(); string ModelName = Model.GetType().Name; string DbValue = string.Empty; List <string> FileName = new List <string>(); List <string> Value = new List <string>(); bool r = true; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs == null) { r = false; } else { r = true;// objAttrs.IsAdd; } if (r) { object obj = pi.GetValue(Model, null); if (obj == null) { DbValue = "''"; } else { DbValue = obj.DbTypeStr(); } FileName.Add(pi.Name); Value.Add(DbValue); } } return(Convert.ToInt32(Helper.GetAddGetId(string.Join(",", FileName), string.Join(",", Value), ModelName))); }
/// <summary> /// 查询Parameter /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model">泛型对象</param> /// <returns></returns> public static T MySQLGTMInfoByParameter <T>(this T Model) where T : new() { MySQLDBHeper Helper = new MySQLDBHeper(); T t = new T(); List <MySqlParameter> Parameter = new List <MySqlParameter>(); PropertyInfo[] propertys = Model.GetType().GetProperties(); string ModelName = Model.GetType().Name; List <string> Condition = new List <string>(); string DbValue = string.Empty; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs != null) { object obj = pi.GetValue(Model, null); if (obj == null) { DbValue = "''"; } else { DbValue = obj.DbTypeStr(); } Parameter.Add(new MySqlParameter("@" + pi.Name, DbValue)); Condition.Add("and " + pi.Name + "=@" + pi.Name); } } DataRow dr = Helper.BsGetDataReader("select * from " + ModelName + " where 1=1 " + string.Join(" ", Condition), Parameter.ToArray()); if (dr == null) { return(default(T)); } return(dr.ToModel <T>()); }
/// <summary> /// 返回DataSet结果存储过程 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Model"></param> /// <param name="ConnectionName">数据库连接名字</param> /// <returns></returns> public static DataSet GTDsStorage <T>(this T Model, string ConnectionName = null) where T : new() { List <SqlParameter> Parameter = new List <SqlParameter>(); PropertyInfo[] propertys = Model.GetType().GetProperties(); string ModelName = Model.GetType().Name; foreach (PropertyInfo pi in propertys) { GDColoum objAttrs = pi.GetCustomAttribute <GDColoum>(); if (objAttrs != null) { object obj = pi.GetValue(Model, null); if (obj != null) { Parameter.Add(new SqlParameter("@" + pi.Name, pi.GetValue(Model, null))); } } } SQLServerDBHeper Helper = GetDBHeper(ConnectionName); return(Helper.MoreExecuteStorage(ModelName, Parameter.ToArray())); }