void bgwImport_DoWork(object sender, DoWorkEventArgs e) { string fileName = e.Argument.ToString(); //EXCEL程序辅助对象 ExcelHelper helper = new ExcelHelper(); //程序不可见 helper.Visible = false; //绑定事件 helper.GetingRecord += new EventHandler <EventArgs>(helper_GetingRecord); try { //获取文件中的记录列表 List <Model.HkRecord> lRecord = helper.GetHkRecord(fileName); if (lRecord != null && lRecord.Count > 0) { //声明一个业务层 BLL.RecordBLL bll = new BLL.RecordBLL(); importCount = bll.AddRecords(lRecord, AddRecord); } } catch (Exception ex) { MessageBox.Show("导入记录时错误," + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning); bgwImport.CancelAsync(); } finally { helper.Close(); helper = null; GC.Collect(); } }
private void tsbSave_Click(object sender, EventArgs e) { int rowCount = dgvList.Rows.Count; if (rowCount == 0 || (dgvList.AllowUserToAddRows && rowCount == 1)) { MessageBox.Show("无保存内容!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } DialogResult result = MessageBox.Show("确认保存吗!", "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result == DialogResult.Cancel) { return; } //遍历行 for (int r = 0; r < dgvList.Rows.Count; r++) { if (dgvList.Rows[r].IsNewRow) { continue; } //从第2列开始遍历列 for (int c = 1; c < dgvList.Columns.Count; c++) { //检查有无空行或空的内容 object value = dgvList.Rows[r].Cells[c].Value; if (value == null || value == DBNull.Value || value.ToString().Trim().Length == 0) { MessageBox.Show("单元内容不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); dgvList.ClearSelection(); dgvList.CurrentCell = dgvList.Rows[r].Cells[c]; dgvList.CurrentCell.Selected = true; dgvList.Focus(); return; } } } BLL.RecordBLL bll = new BLL.RecordBLL(); DataTable dttab = dgvList.DataSource as DataTable; if (dttab != null) { try { bll.SaveData(dttab); MessageBox.Show("保存完成", "完成", MessageBoxButtons.OK, MessageBoxIcon.None); frmMdi.tsslInfo.Text = "保存成功!"; frmMdi.tsslInfo.BackColor = frmMdi.BackColor; } catch (Exception ex) { MessageBox.Show("保存错误," + ex.Message, "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); frmMdi.tsslInfo.Text = "保存失败!"; frmMdi.tsslInfo.BackColor = Color.Yellow; } } }
private void tsbAdd_Click(object sender, EventArgs e) { BLL.RecordBLL bll = new BLL.RecordBLL(); //取得一张空表 DataTable dttab = bll.GetDataByCondition(null); if (dttab != null) { dgvList.DataSource = dttab; } }
private void tsbSearch_Click(object sender, EventArgs e) { //查询条件列表 List <Model.Condition> lCondition = new List <Model.Condition>(); if (txtRecordDate.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "record_date", paramValue = txtRecordDate.Text, FieldType = Model.Condition.FieldDbType.DateTime }); } if (txtTimes.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "times", paramValue = txtTimes.Text, FieldType = Model.Condition.FieldDbType.String }); } if (txtFirstNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "first_num", paramValue = txtFirstNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (txtSecondNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "second_num", paramValue = txtSecondNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (txtThirdNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "third_num", paramValue = txtThirdNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (txtFourthNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "fourth_num", paramValue = txtFourthNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (txtFifthNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "fifth_num", paramValue = txtFifthNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (txtSixthNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "sixth_num", paramValue = txtSixthNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (txtSeventhNum.Text.Trim().Length > 0) { lCondition.Add( new Model.Condition { paramName = "seventh_num", paramValue = txtSeventhNum.Text, FieldType = Model.Condition.FieldDbType.Number }); } if (lCondition.Count == 0) { MessageBox.Show("查询条件为空!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } BLL.RecordBLL bll = new BLL.RecordBLL(); try { //按条件取得数据 DataTable dttab = bll.GetDataByCondition(lCondition); if (dttab == null || dttab.Rows.Count == 0) { MessageBox.Show( "没有找到符合条件的数据!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error ); frmMdi.tsslInfo.Text = "查询内容为空!"; frmMdi.tsslInfo.BackColor = Color.Yellow; } else { //绑定数据 dgvList.DataSource = dttab; frmMdi.tsslInfo.Text = "查询完成!"; frmMdi.tsslInfo.BackColor = frmMdi.BackColor; } } catch (Exception ex) { MessageBox.Show( "查询发生错误," + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error ); frmMdi.tsslInfo.Text = "查询失败!"; frmMdi.tsslInfo.BackColor = Color.Yellow; } }
/// <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; } }