Esempio n. 1
0
        public DataTable StatisticianReadDays(DateTime startDate, DateTime endDate)
        {
            string str_StartDate = startDate.ToString("yyyy-MM-dd");
            string str_EndDate   = endDate.ToString("yyyy-MM-dd");
            int    dayrange      = (endDate - startDate).Days + 1;

            DataTable table = new DataTable();

            table.Columns.Add(new DataColumn("状态", typeof(string)));
            table.Columns.Add(new DataColumn("天数", typeof(string)));

            string sql = string.Format("SELECT count(*) FROM TB_BookReadSign where Date >= '{0}' AND Date<='{1}'", str_StartDate, str_EndDate);

            try
            {
                using (var db = mFactory.OpenDefalutDataBase())
                {
                    string value    = db.ExecuteSqlToDataSet(sql).Tables[0].Rows[0][0].ToString();
                    int    readdays = string.IsNullOrEmpty(value) ? 0 : int.Parse(value);

                    DataRow row = table.NewRow();
                    row[0] = "读书天数"; row[1] = readdays;
                    table.Rows.Add(row);
                    DataRow row2 = table.NewRow();
                    row2[0] = "未读书天数"; row2[1] = dayrange - readdays;
                    table.Rows.Add(row2);
                }
            }
            catch (Exception ex)
            {
                mFactory.WriteSystemLog("StatisticianReadDays", ex);
            }

            return(table);
        }
Esempio n. 2
0
        public BudgetStatistician Statistic(IDataBaseFactory factory)
        {
            string sql = string.Format("SELECT sum(TB_Budget.Estimate),sum(Actuality),sum((CASE WHEN Level = '{0}' THEN Actuality ELSE 0 END)) FROM TB_Budget", EnumBudgetState.Signed);

            using (var db = factory.OpenDefalutDataBase())
            {
                DataSet set = db.ExecuteSqlToDataSet(sql);
                SumEstimate    = onConvertToDouble(set.Tables[0].Rows[0][0].ToString());
                FinishEstimate = onConvertToDouble(set.Tables[0].Rows[0][1].ToString());
                FinishAcutual  = onConvertToDouble(set.Tables[0].Rows[0][2].ToString());
            }
            return(this);
        }