/// <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); }
/// <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)); }
/// <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); }
/// <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)); }
/// <summary> /// 更新分析记录 /// </summary> /// <param name="analysis"></param> /// <returns></returns> public int Update(Model.HkRecordAnalysis analysis) { return(analysisSQL.Update(analysis)); }
/// <summary> /// 删除分析记录 /// </summary> /// <param name="analysis"></param> public void Delete(Model.HkRecordAnalysis analysis) { analysisSQL.Delete(analysis); }
/// <summary> /// 新增分析记录 /// </summary> /// <param name="analysis"></param> /// <returns></returns> public int Add(Model.HkRecordAnalysis analysis) { return(analysisSQL.Add(analysis)); }
/// <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); }
/// <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; } }
/// <summary> /// 删除分析记录 /// </summary> /// <param name="analysis"></param> public void Delete(Model.HkRecordAnalysis analysis) { //执行删除 Delete(analysis.Times); }