示例#1
0
        /// <summary>
        /// 获取所有分析记录
        /// </summary>
        /// <returns></returns>
        public List <Model.HkRecordAnalysis> GetData()
        {
            //按升序查找所有记录
            string        strSql = "SELECT *  FROM [t_record_analysis] ORDER BY [times] ASC";
            SqlDataReader read;
            //分析列表
            List <Model.HkRecordAnalysis> lAnalysis = new List <Model.HkRecordAnalysis>();

            DBUtility.SQLServerHelper helper = new DBUtility.SQLServerHelper();
            //执行更新
            helper.RunSQL(strSql, out read);
            while (read.Read())
            {
                Model.HkRecordAnalysis analysis = new Model.HkRecordAnalysis();
                analysis.Times        = read.GetString(0);
                analysis.WhatNumber   = read.GetByte(1);
                analysis.Multiple     = read.GetInt16(2);
                analysis.NumMoney     = read.GetString(3);
                analysis.Outlay       = read.GetDouble(4);
                analysis.ExpectIncome = read.GetString(5);
                analysis.RecordNum    = read.GetInt16(6);
                analysis.RelityIncome = read.GetDouble(7);
                analysis.Balance      = read.GetDouble(8);
                object value = read[9];
                if (value != null)
                {
                    analysis.Writer = value.ToString();
                }
                analysis.WriteDate  = read.GetDateTime(10);
                analysis.ModifyDate = read.GetDateTime(11);
                lAnalysis.Add(analysis);
            }
            return(lAnalysis);
        }
示例#2
0
        /// <summary>
        /// 新增分析记录
        /// </summary>
        /// <param name="analysis"></param>
        /// <returns></returns>
        public int Add(Model.HkRecordAnalysis analysis)
        {
            string strInsert =
                @"INSERT INTO [t_record_analysis]
                           ([times]
                           ,[what_number]
                           ,[multiple]
                           ,[num_money]
                           ,[outlay]
                           ,[expect_income]
                           ,[num]
                           ,[relity_income]
                           ,[balance]
                           ,[writer]
                           ,[write_date]
                           ,[modify_date])
                     VALUES
                           (@times
                           ,@what_number
                           ,@multiple
                           ,@num_money
                           ,@outlay
                           ,@expect_income
                           ,@num
                           ,@relity_income
                           ,@balance
                           ,@writer
                           ,getdate()
                           ,getdate()
                            )";

            DBUtility.SQLServerHelper helper = new DBUtility.SQLServerHelper();
            //先删除记录
            Delete(analysis.Times);
            SqlParameter[] pars = new SqlParameter[10];
            pars[0] = new SqlParameter("@times", analysis.Times);
            pars[1] = new SqlParameter("@what_number", analysis.WhatNumber);
            pars[2] = new SqlParameter("@multiple", analysis.Multiple);
            pars[3] = new SqlParameter("@num_money", analysis.NumMoney);
            pars[4] = new SqlParameter("@outlay", analysis.Outlay);
            pars[5] = new SqlParameter("@expect_income", analysis.ExpectIncome);
            pars[6] = new SqlParameter("@num", analysis.RecordNum);
            pars[7] = new SqlParameter("@relity_income", analysis.RelityIncome);
            pars[8] = new SqlParameter("@balance", analysis.Balance);
            if (analysis.Writer != null)
            {
                pars[9] = new SqlParameter("@writer", analysis.Writer);
            }
            else
            {
                pars[9] = new SqlParameter("@writer", DBNull.Value);
            }
            //执行新增
            return(helper.RunSQL(strInsert, pars));
        }
示例#3
0
        /// <summary>
        /// 按期次获取分析记录
        /// </summary>
        /// <param name="times"></param>
        /// <returns></returns>
        public Model.HkRecordAnalysis GetDataByTimes(string times)
        {
            string strSql =
                @"SELECT [times]
                      ,[what_number]
                      ,[multiple]
                      ,[num_money]
                      ,[outlay]
                      ,[expect_income]
                      ,[num]
                      ,[relity_income]
                      ,[balance]
                      ,[writer]
                      ,[write_date]
                      ,[modify_date]
                  FROM [t_record_analysis]";
            SqlDataReader read;

            //分析列表
            Model.HkRecordAnalysis    analysis = new Model.HkRecordAnalysis();
            DBUtility.SQLServerHelper helper   = new DBUtility.SQLServerHelper();
            //执行更新
            helper.RunSQL(strSql, out read);
            if (read.Read())
            {
                analysis.Times        = read.GetString(0);
                analysis.WhatNumber   = read.GetByte(1);
                analysis.Multiple     = read.GetInt16(2);
                analysis.NumMoney     = read.GetString(3);
                analysis.Outlay       = read.GetDouble(4);
                analysis.ExpectIncome = read.GetString(5);
                analysis.RecordNum    = read.GetByte(6);
                analysis.RelityIncome = read.GetDouble(7);
                analysis.Balance      = read.GetDouble(8);
                analysis.Writer       = read.GetString(9);
                analysis.WriteDate    = read.GetDateTime(10);
                analysis.ModifyDate   = read.GetDateTime(11);
            }
            return(analysis);
        }
示例#4
0
        /// <summary>
        /// 更新分析记录
        /// </summary>
        /// <param name="analysis"></param>
        /// <returns></returns>
        public int Update(Model.HkRecordAnalysis analysis)
        {
            string strUpdate =
                @"UPDATE [t_record_analysis]
                   SET [what_number] = @what_number
                      ,[multiple] = @multiple
                      ,[num_money] = @num_money
                      ,[outlay] = @outlay
                      ,[expect_income] = @expect_income
                      ,[num] = @num
                      ,[relity_income] = @relity_income
                      ,[balance] = @balance
                      ,[writer] = @writer
                      ,[write_date] = @write_date
                      ,[modify_date] = getdate()
                 WHERE [times] = @times";

            SqlParameter[] pars = new SqlParameter[11];
            pars[0] = new SqlParameter("@times", analysis.Times);
            pars[1] = new SqlParameter("@what_number", analysis.WhatNumber);
            pars[2] = new SqlParameter("@multiple", analysis.Multiple);
            pars[3] = new SqlParameter("@num_money", analysis.NumMoney);
            pars[4] = new SqlParameter("@outlay", analysis.Outlay);
            pars[5] = new SqlParameter("@expect_income", analysis.ExpectIncome);
            pars[6] = new SqlParameter("@num", analysis.RecordNum);
            pars[7] = new SqlParameter("@relity_income", analysis.RelityIncome);
            pars[8] = new SqlParameter("@balance", analysis.Balance);
            if (analysis.Writer != null)
            {
                pars[9] = new SqlParameter("@writer", analysis.Writer);
            }
            else
            {
                pars[9] = new SqlParameter("@writer", DBNull.Value);
            }
            pars[10] = new SqlParameter("@write_date", analysis.WriteDate);
            DBUtility.SQLServerHelper helper = new DBUtility.SQLServerHelper();
            //执行更新
            return(helper.RunSQL(strUpdate, pars));
        }
示例#5
0
 /// <summary>
 /// 更新分析记录
 /// </summary>
 /// <param name="analysis"></param>
 /// <returns></returns>
 public int Update(Model.HkRecordAnalysis analysis)
 {
     return(analysisSQL.Update(analysis));
 }
示例#6
0
 /// <summary>
 /// 删除分析记录
 /// </summary>
 /// <param name="analysis"></param>
 public void Delete(Model.HkRecordAnalysis analysis)
 {
     analysisSQL.Delete(analysis);
 }
示例#7
0
 /// <summary>
 /// 新增分析记录
 /// </summary>
 /// <param name="analysis"></param>
 /// <returns></returns>
 public int Add(Model.HkRecordAnalysis analysis)
 {
     return(analysisSQL.Add(analysis));
 }
示例#8
0
        /// <summary>
        /// 保存数据表
        /// </summary>
        /// <param name="dttab"></param>
        /// <returns></returns>
        public bool SaveData(DataTable dttab)
        {
            if (dttab == null)
            {
                return(false);
            }
            using (TransactionScope scope = new TransactionScope())
            {
                //遍历所有行
                for (int i = 0; i < dttab.Rows.Count; i++)
                {
                    //当前行的状态
                    DataRowState state = dttab.Rows[i].RowState;
                    if (state == DataRowState.Added || state == DataRowState.Modified)
                    {
                        DataRow row = dttab.Rows[i];
                        Model.HkRecordAnalysis analysis = new Model.HkRecordAnalysis();
                        analysis.Times = row["times"].ToString();
                        object value = row["what_number"];
                        if (value != DBNull.Value)
                        {
                            analysis.WhatNumber = byte.Parse(value.ToString());
                        }
                        value = row["multiple"];
                        if (value != DBNull.Value)
                        {
                            analysis.Multiple = int.Parse(value.ToString());
                        }
                        value = row["num_money"];
                        if (value != DBNull.Value)
                        {
                            analysis.NumMoney = value.ToString();
                        }
                        value = row["outlay"];
                        if (value != DBNull.Value)
                        {
                            analysis.Outlay = double.Parse(value.ToString());
                        }
                        value = row["expect_income"];
                        if (value != DBNull.Value)
                        {
                            analysis.ExpectIncome = value.ToString();
                        }
                        value = row["num"];
                        if (value != DBNull.Value)
                        {
                            analysis.RecordNum = byte.Parse(value.ToString());
                        }
                        value = row["relity_income"];
                        if (value != DBNull.Value)
                        {
                            analysis.RelityIncome = double.Parse(value.ToString());
                        }
                        value = row["balance"];
                        if (value != DBNull.Value)
                        {
                            analysis.Balance = double.Parse(value.ToString());
                        }
                        value = row["writer"];
                        if (value != DBNull.Value)
                        {
                            analysis.Writer = value.ToString();
                        }
                        value = row["write_date"];
                        if (value != DBNull.Value)
                        {
                            DateTime dt;
                            dt = DateTime.Parse(value.ToString());
                            analysis.WriteDate = dt;
                        }
                        switch (state)
                        {
                        case DataRowState.Added:
                            //新增
                            analysisSQL.Add(analysis);
                            break;

                        case DataRowState.Modified:
                            //更新保存
                            analysisSQL.Update(analysis);
                            break;

                        default:
                            break;
                        }
                    }
                    else
                    {
                        if (state == DataRowState.Deleted)
                        {
                            string times = dttab.Rows[i]["times", DataRowVersion.Original].ToString();
                            //按期交执行删除
                            analysisSQL.Delete(times);
                        }
                    }
                }
                //提交事务
                scope.Complete();
            }
            return(true);
        }
示例#9
0
        /// <summary>
        /// 刷新分析记录(写入实际号码并计算实际收益和余额)
        /// </summary>
        private void RefreshByRecord()
        {
            //分析结果操作对象
            BLL.AnalysisBLL analysisBll = new BLL.AnalysisBLL();
            //获取所有数据
            List <Model.HkRecordAnalysis> lAnalysis = analysisBll.GetData();

            //记录操作对象
            BLL.RecordBLL recordBll = new BLL.RecordBLL();
            //余额
            double balance = 0;

            if (lAnalysis.Count == 0)
            {
                return;
            }
            try
            {
                for (int i = 0; i < lAnalysis.Count; i++)
                {
                    Model.HkRecordAnalysis analysis = lAnalysis[i];
                    if (analysis.Outlay <= 0)
                    {
                        //余额为当前余额
                        analysis.Balance = balance;
                        continue;
                    }
                    else
                    {
                        //号码金额为空
                        if (analysis.NumMoney.Length == 0)
                        {
                            //实际收益-支出
                            analysis.RelityIncome -= analysis.Outlay;
                            //余额=余额-支出
                            balance = balance - analysis.Outlay;
                            //写入余额
                            analysis.Balance = balance;
                        }
                        else
                        {
                            //操作第几位数字
                            byte whatNumber = analysis.WhatNumber;
                            //当前期次
                            string times = analysis.Times;
                            //按期次获取记录
                            Model.HkRecord record = recordBll.GetDataByTimes(times);
                            //在记录找不到分析的期次
                            if (record.Times == null)
                            {
                                break;
                            }
                            byte number;
                            switch (whatNumber)
                            {
                            case 1:
                                number = record.FirstNum;
                                break;

                            case 2:
                                number = record.SecondNum;
                                break;

                            case 3:
                                number = record.ThirdNum;
                                break;

                            case 4:
                                number = record.FourthNum;
                                break;

                            case 5:
                                number = record.FifthNum;
                                break;

                            case 6:
                                number = record.SixthNum;
                                break;

                            case 7:
                                number = record.SeventhNum;
                                break;

                            default:
                                throw new Exception("期次不正确,必须为1-7之间!");
                            }
                            analysis.RecordNum = number;//记录号码
                            string   numMoney  = analysis.NumMoney.Replace(" ", "").Replace(";", ";").Replace(":", ":");
                            string[] numMoneys = numMoney.Split(new char[] { ';' });
                            //号码与金额是否有记录号码
                            bool isHasNumber = false;
                            foreach (string item in numMoneys)
                            {
                                int index = item.IndexOf(":");
                                if (index > 0)
                                {
                                    string strNum   = item.Substring(0, index);
                                    string strMoney = item.Substring(index + 1);
                                    //分析号码与实际记录一致
                                    if (strNum == number.ToString())
                                    {
                                        double money;
                                        if (double.TryParse(strMoney, out money))
                                        {
                                            double sumMoney = money * analysis.Multiple;
                                            //实际收益
                                            double relityIncome = sumMoney - analysis.Outlay;
                                            analysis.RelityIncome = relityIncome;
                                            isHasNumber           = true;
                                            break;
                                        }
                                    }
                                }
                            }
                            if (isHasNumber == false)
                            {
                                //实际收益为负的支出
                                analysis.RelityIncome = -analysis.Outlay;
                            }
                            //余额=余额+实际收益
                            balance         += analysis.RelityIncome;
                            analysis.Balance = balance;
                        }
                    }
                }
                //更新列表
                analysisBll.Update(lAnalysis);
            }
            catch (Exception ex)
            {
                MessageBox.Show("刷新过程发生错误," + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                frmMdi.tsslInfo.Text      = "刷新失败!";
                frmMdi.tsslInfo.BackColor = Color.Yellow;
            }
        }
示例#10
0
 /// <summary>
 /// 删除分析记录
 /// </summary>
 /// <param name="analysis"></param>
 public void Delete(Model.HkRecordAnalysis analysis)
 {
     //执行删除
     Delete(analysis.Times);
 }