Пример #1
0
        /// <summary>
        /// 查询统计信息
        /// </summary>
        /// <param name="SqlWhere">条件语句,如:IsDel=0 AND Status=@Status AND Id>@MinId</param>
        /// <param name="UseReadonlySource">是否实用只读数据源,true-是,false-否</param>
        /// <param name="SqlParams">参数集合,如:{Status,MinId}</param>
        /// <returns></returns>
        public static long Count(string SqlWhere, bool UseReadonlySource = true, params object[] SqlParams)
        {
            string SqlText = SqlGenerator.SQLBUILDER_Count(DB.ORM_TabInfo, SqlWhere);

            Data.DBHelper db       = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, UseReadonlySource);
            object        CountObj = db.ExecTextScalar(SqlText, SqlParams);

            if (CountObj != null && CountObj != DBNull.Value)
            {
                long CountVal = Convert.ToInt64(CountObj);
                return(CountVal);
            }
            else
            {
                return(-1);
            }
        }
Пример #2
0
        /// <summary>
        /// 查询统计信息
        /// </summary>
        /// <param name="ExpWhere">lamda表达式</param>
        /// <param name="UseReadonlySource">是否实用只读数据源,true-是,false-否</param>
        /// <returns></returns>
        public static long Count(Expression <Func <T, bool> > ExpWhere, bool UseReadonlySource = true)
        {
            ResolveExpress re = new Tool.ResolveExpress();

            re.ResolveExpression(re, ExpWhere);
            string SqlWhere = "1=1" + re.SqlWhere;
            string SqlText  = SqlGenerator.SQLBUILDER_Count(DB.ORM_TabInfo, SqlWhere);

            object[]      SqlParams = re.SqlParams.ToArray();
            Data.DBHelper db        = new Data.DBHelper(DB.ORM_TabInfo.ORMConnectionMark, UseReadonlySource);
            object        CountObj  = db.ExecTextScalar(SqlText, SqlParams);

            if (CountObj != null && CountObj != DBNull.Value)
            {
                long CountVal = Convert.ToInt64(CountObj);
                return(CountVal);
            }
            else
            {
                return(-1);
            }
        }
Пример #3
0
        /// <summary>
        /// 保存数据记录
        /// </summary>
        /// <param name="Model">实体</param>
        /// <param name="NewId">如存在自增列,则为新自增列Id</param>
        /// <returns></returns>
        public static bool Add(T Model, out long NewId)
        {
            NewId = -1;
            string        SqlText   = SqlGenerator.SQLBUILDER_Add(DB.ORM_TabInfo);
            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);
            object        NewIdObj = null;

            try
            {
                NewIdObj = db.ExecTextScalar(SqlText, SqlParams.ToArray());
                if (NewIdObj != null && NewIdObj != DBNull.Value)
                {
                    long.TryParse(NewIdObj.ToString(), out NewId);
                    if (!string.IsNullOrEmpty(DB.ORM_TabInfo.ORM_AutoIncreaseColName) && DB.ORM_TabInfo.ORM_TypePropDic.ContainsKey(DB.ORM_TabInfo.ORM_AutoIncreaseColName))
                    {
                        PropertyInfo AutoIncreaseProp = DB.ORM_TabInfo.ORM_TypePropDic[DB.ORM_TabInfo.ORM_AutoIncreaseColName];
                        if (AutoIncreaseProp.PropertyType == typeof(int))
                        {
                            DB.ORM_TabInfo.ORM_TypePropDic[DB.ORM_TabInfo.ORM_AutoIncreaseColName].SetValue(Model, Convert.ToInt32(NewId));
                        }
                        else if (AutoIncreaseProp.PropertyType == typeof(short))
                        {
                            DB.ORM_TabInfo.ORM_TypePropDic[DB.ORM_TabInfo.ORM_AutoIncreaseColName].SetValue(Model, Convert.ToInt16(NewId));
                        }
                        else
                        {
                            DB.ORM_TabInfo.ORM_TypePropDic[DB.ORM_TabInfo.ORM_AutoIncreaseColName].SetValue(Model, NewId);
                        }
                    }
                }
                return(true);
            }
            catch (Exception E)
            {
                Console.WriteLine(E.Message);
                return(false);
            }
        }