Example #1
0
        /// <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
            });
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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));
        }
Example #6
0
        /// <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));
        }
Example #7
0
        /// <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()));
        }
Example #8
0
        /// <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)));
        }
Example #9
0
        /// <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>());
        }
Example #10
0
        /// <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()));
        }