Exemplo n.º 1
0
        /// <summary>
        /// 物理删除数据记录
        /// </summary>
        /// <param name="SqlWhere">条件语句,如:IsDel=0 AND Status=@Status AND Id>@MinId</param>
        /// <param name="SqlParams">参数集合,如:{Status,MinId}</param>
        /// <returns></returns>
        public static int DbDel(string SqlWhere, params object[] SqlParams)
        {
            string SqlText = SqlGenerator.SQLBUILDER_DbDel(DB.ORM_TabInfo, SqlWhere);

            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            return(db.ExecTextNonQuery(SqlText, SqlParams));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 动态模型更新
        /// </summary>
        /// <param name="DSet">动态更新列模型</param>
        /// <param name="DWhere">动态更新条件模型</param>
        /// <returns></returns>
        public static int Update(ExpandoObject ESet, ExpandoObject EWhere)
        {
            List <object> SqlParams = new List <object>();
            string        SqlText   = SqlGenerator.SQLBUILDER_Update(DB.ORM_TabInfo, ESet, EWhere, out SqlParams);

            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            return(db.ExecTextNonQuery(SqlText, SqlParams.ToArray()));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 逻辑删除数据记录
        /// </summary>
        /// <param name="DWhere"></param>
        /// <returns></returns>
        public static int DbDel(dynamic DWhere)
        {
            List <object> SqlParams = new List <object>();
            string        SqlText   = SqlGenerator.SQLBUILDER_DbDel(DB.ORM_TabInfo, DWhere, out SqlParams);

            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            return(db.ExecTextNonQuery(SqlText, SqlParams));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 更新数据模型
        /// </summary>
        /// <param name="Model">数据模型</param>
        /// <returns></returns>
        private static bool UpdateWhereNeed(ModelBase <T> Model)
        {
            string        SqlText   = SqlGenerator.SQLBUILDER_Update(DB.ORM_TabInfo, Model.ModifiedColumns);
            List <object> SqlParams = new List <object>();

            foreach (string PropName in DB.ORM_TabInfo.ORMColList)
            {
                if (DB.ORM_TabInfo.ORM_NoAddCols.Contains(PropName) || DB.ORM_TabInfo.ORM_AutoIncreaseColName == PropName || !Model.ModifiedColumns.Contains("[" + PropName + "]"))
                {
                    continue;
                }
                PropertyInfo Prop      = DB.ORM_TabInfo.ORM_TypePropDic[PropName];
                object       PropValue = Prop.GetValue(Model);
                if (Prop.PropertyType == typeof(DateTime))
                {
                    DateTime DT = Convert.ToDateTime(PropValue);
                    if (DT.Year < 1900)
                    {
                        SqlParams.Add(new DateTime(1900, 1, 1));
                    }
                    else
                    {
                        SqlParams.Add(PropValue);
                    }
                }
                else
                {
                    SqlParams.Add(PropValue);
                }
            }
            if (!string.IsNullOrEmpty(DB.ORM_TabInfo.ORM_AutoIncreaseColName) && DB.ORM_TabInfo.ORM_TypePropDic.ContainsKey(DB.ORM_TabInfo.ORM_AutoIncreaseColName))
            {
                SqlParams.Add(DB.ORM_TabInfo.ORM_TypePropDic[DB.ORM_TabInfo.ORM_AutoIncreaseColName].GetValue(Model));
            }
            else if (DB.ORM_TabInfo.ORM_PrimaryKeys.Count > 0)
            {
                foreach (string PrimaryKeyName in DB.ORM_TabInfo.ORM_PrimaryKeys)
                {
                    PropertyInfo PrimaryKeyProp = DB.ORM_TabInfo.ORM_TypePropDic[PrimaryKeyName];
                    SqlParams.Add(PrimaryKeyProp.GetValue(Model));
                }
            }
            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            try
            {
                return(db.ExecTextNonQuery(SqlText, SqlParams.ToArray()) >= 1);
            }
            catch
            {
                return(false);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 模型更新,动态条件类型
        /// </summary>
        /// <param name="Model">数据模型</param>
        /// <param name="DWhere">动态更新条件模型</param>
        /// <returns></returns>
        public static int Update(T Model, ExpandoObject EWhere)
        {
            if (EWhere == null)
            {
                return(Update(Model) ? 1 : 0);
            }
            List <object> SqlParams      = new List <object>();
            List <object> SqlWhereParams = new List <object>();
            ModelBase <T> TempModel      = Model as ModelBase <T>;
            string        SqlText        = SqlGenerator.SQLBUILDER_Update(DB.ORM_TabInfo, TempModel.ModifiedColumns, EWhere, out SqlWhereParams);

            foreach (string PropName in DB.ORM_TabInfo.ORMColList)
            {
                if (DB.ORM_TabInfo.ORM_NoAddCols.Contains(PropName) || DB.ORM_TabInfo.ORM_AutoIncreaseColName == PropName)
                {
                    continue;
                }
                PropertyInfo Prop      = DB.ORM_TabInfo.ORM_TypePropDic[PropName];
                object       PropValue = Prop.GetValue(Model);
                if (Prop.PropertyType == typeof(DateTime))
                {
                    DateTime DT = Convert.ToDateTime(PropValue);
                    if (DT.Year < 1900)
                    {
                        SqlParams.Add(new DateTime(1900, 1, 1));
                    }
                    else
                    {
                        SqlParams.Add(PropValue);
                    }
                }
                else
                {
                    SqlParams.Add(PropValue);
                }
            }
            if (SqlWhereParams != null)
            {
                SqlParams.AddRange(SqlWhereParams);
            }
            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            try
            {
                return(db.ExecTextNonQuery(SqlText, SqlParams.ToArray()));
            }
            catch
            {
                return(-1);
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 更新数据记录
        /// </summary>
        /// <param name="SqlWhere">条件语句,如:IsDel=0 AND Status=@Status AND Id>@MinId</param>
        /// <param name="SqlSet">设置语句,如:TrueName=@TrueName,Remark=@Remark</param>
        /// <param name="SqlParams">参数集合,如:{Status,MinId}</param>
        /// <returns></returns>
        public static int Update(string SqlSet, string SqlWhere, params object[] SqlParams)
        {
            string SqlText = SqlGenerator.SQLBUILDER_Update(DB.ORM_TabInfo, SqlWhere, SqlSet);

            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            for (int i = 0; i < SqlParams.Length; i++)
            {
                object SqlParam = SqlParams[i];
                if (SqlParam is DateTime)
                {
                    if (((DateTime)SqlParam).Year < 1900)
                    {
                        SqlParams[i] = new DateTime(1900, 1, 1);
                    }
                }
            }
            return(db.ExecTextNonQuery(SqlText, SqlParams));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 保存数据记录
        /// </summary>
        /// <param name="Model"></param>
        /// <returns></returns>
        public static bool Add(T Model)
        {
            string        SqlText   = SqlGenerator.SQLBUILDER_Add(DB.ORM_TabInfo, false);
            List <object> SqlParams = new List <object>();

            foreach (string PropName in DB.ORM_TabInfo.ORMColList)
            {
                if (DB.ORM_TabInfo.ORM_NoAddCols.Contains(PropName) || DB.ORM_TabInfo.ORM_AutoIncreaseColName == PropName)
                {
                    continue;
                }
                PropertyInfo Prop      = DB.ORM_TabInfo.ORM_TypePropDic[PropName];
                object       PropValue = Prop.GetValue(Model);
                if (Prop.PropertyType == typeof(DateTime))
                {
                    DateTime DT = Convert.ToDateTime(PropValue);
                    if (DT.Year < 1900)
                    {
                        SqlParams.Add(new DateTime(1900, 1, 1));
                    }
                    else
                    {
                        SqlParams.Add(PropValue);
                    }
                }
                else
                {
                    SqlParams.Add(PropValue);
                }
            }
            Data.DBHelper db = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, false);
            try
            {
                return(db.ExecTextNonQuery(SqlText, SqlParams.ToArray()) == 1);
            }
            catch (Exception E)
            {
                Console.WriteLine(E.Message);
                return(false);
            }
        }