實戰案例 - 資料對接工具程式碼重構 (2)
2015-11-04 14:39
225 查看
由於剛開始用物件導向的思維來寫程式,很多地方尚未適應,而且時程也有點趕,所以做出來的東西,很有機會慘不忍睹。上一篇所提到的全部操作效果,初期的實作程式碼如本文底部所示,整個程式碼就是資料上傳 form 的 code-behind。
各位可以看到,程式非常雜亂,有處理常數的,有處理控制項狀態的,有做表單驗證的,也有處理 json 格式的,還有處理資料庫存取的,這些程式碼都集中在同一個 code-behind 裡。另外還有更要命的,各位應該不難發現,程式裡散佈很多結構相同的 switch case 片段。現在回想起來,當時在寫這些程式,經常會有頭昏眼花,程式碼寫錯地方的情況,因為同一個畫面有太多類似的程式片段,加上現在普遍都是寬螢幕,更不利於看程式,所以經常搞不清楚上下文。
code-behind 是純粹的用戶端程式區,也是除了使用者之外,最接近操作介面的地方。換個方式來理解,code-behind 與 winform 是一體兩面,也可以說 code-behind 是兩者之間的溝通橋樑,因此寫在這個區塊的程式碼,也應該要單純化,不應該夾雜太多面向。就以這個資料上傳功能為例,最理想的情況,它的 code-behind 應該只有一些變數或常數的初始化,還有幾個主要操作的呼叫程式碼。
各位可以看到,程式非常雜亂,有處理常數的,有處理控制項狀態的,有做表單驗證的,也有處理 json 格式的,還有處理資料庫存取的,這些程式碼都集中在同一個 code-behind 裡。另外還有更要命的,各位應該不難發現,程式裡散佈很多結構相同的 switch case 片段。現在回想起來,當時在寫這些程式,經常會有頭昏眼花,程式碼寫錯地方的情況,因為同一個畫面有太多類似的程式片段,加上現在普遍都是寬螢幕,更不利於看程式,所以經常搞不清楚上下文。
code-behind 是純粹的用戶端程式區,也是除了使用者之外,最接近操作介面的地方。換個方式來理解,code-behind 與 winform 是一體兩面,也可以說 code-behind 是兩者之間的溝通橋樑,因此寫在這個區塊的程式碼,也應該要單純化,不應該夾雜太多面向。就以這個資料上傳功能為例,最理想的情況,它的 code-behind 應該只有一些變數或常數的初始化,還有幾個主要操作的呼叫程式碼。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; namespace SybaseUtility { public partial class fSybaseSender : Form { private string errorMsgText = ""; private DataTable dtOriginal; private string[] HeaderText; private string[] DbColumn; private string filterString; private string PrePickedItems = ""; private string PreAllItems = ""; private string finalItems = ""; private string SendMode = ""; private string ResetMode = ""; Garages garages = new Garages(); JsonBodies Json = new JsonBodies(); public fSybaseSender() { InitializeComponent(); } private void cbxDataType_SelectedIndexChanged(object sender, EventArgs e) { labKeyword.Text = ""; switch (cbxDataType.SelectedItem.ToString()) { case "客户资料": case "维修历史": case "会员卡资料": labKeyword.Text = "车主或车牌过滤"; break; case "销售单": labKeyword.Text = "客户或业务过滤"; break; case "积分兑换项目": break; } } private void rbSended_CheckedChanged(object sender, EventArgs e) { btnSendAll.Enabled = false; btnSendPickup.Enabled = false; btnPreview.Enabled = true; btnResetAll.Enabled = true; btnResetPickup.Enabled = true; } private void rbUnSend_CheckedChanged(object sender, EventArgs e) { btnSendAll.Enabled = true; btnSendPickup.Enabled = true; btnPreview.Enabled = true; btnResetAll.Enabled = false; btnResetPickup.Enabled = false; } private void btnPreview_Click(object sender, EventArgs e) { errorMsgText = ""; Validation(); dtOriginal = null; if (errorMsgText.Length == 0) { Prepare(); WholeBind(); } } private void btnSendAll_Click(object sender, EventArgs e) { this.Enabled = false; errorMsgText = ""; Validation(); if (errorMsgText.Length == 0) { SendMode = "All"; Prepare(); finalItems = (PreAllItems.Length > 0) ? PreAllItems.Substring(0, PreAllItems.LastIndexOf(",")) : ""; JsonSendOut(); WholeBind(); } } private void btnSendPickup_Click(object sender, EventArgs e) { errorMsgText = ""; Validation(); if (errorMsgText.Length == 0) { SendMode = "Pick"; Prepare(); finalItems = (PrePickedItems.Length > 0) ? PrePickedItems.Substring(0, PrePickedItems.LastIndexOf(",")) : ""; JsonSendOut(); WholeBind(); } } private void btnResetAll_Click(object sender, EventArgs e) { errorMsgText = ""; Validation(); if (errorMsgText.Length == 0) { ResetMode = "All"; Prepare(); finalItems = (PreAllItems.Length > 0) ? PreAllItems.Substring(0, PreAllItems.LastIndexOf(",")) : ""; ResetStatus(); WholeBind(); } } private void btnResetPickup_Click(object sender, EventArgs e) { errorMsgText = ""; Validation(); if (errorMsgText.Length == 0) { ResetMode = "Pick"; Prepare(); finalItems = (PrePickedItems.Length > 0) ? PrePickedItems.Substring(0, PrePickedItems.LastIndexOf(",")) : ""; ResetStatus(); WholeBind(); } } private void HasDataType(string msg) { if (cbxDataType.SelectedIndex == -1) { errorMsgText += msg + "\n"; } } private void HasSendStatus(string msg) { if (rbSended.Checked == false && rbUnSend.Checked == false) { errorMsgText += msg + "\n"; } } private void Validation() { HasDataType("没有选定数据类型"); HasSendStatus("没有设置上传状态"); if (errorMsgText.Length != 0) { MessageBox.Show(errorMsgText); } } private void fSybaseSender_Load(object sender, EventArgs e) { garages.IsBindWeChat = (ConfigurationManager.AppSettings["IsBand"] == "1") ? true : false; garages.ID = ConfigurationManager.AppSettings["xlcID"]; garages.Title = ConfigurationManager.AppSettings["xlcCaption"]; garages.WeChatOpenID = ConfigurationManager.AppSettings["WXOpenID"]; } private void Prepare() { switch (cbxDataType.SelectedItem.ToString()) { case "客户资料": PrePickedItems = GetCheckedValue(dgvMasterPreview, 5); PreAllItems = GetWholeValue(dgvMasterPreview, 5); filterString = "mc Like '%" + tbKeyword.Text + "%' Or forshort Like '%" + tbKeyword.Text + "%'"; HeaderText = new string[] { "客户名称", "未知", "未知", "简拼", "客户编码", "固话", "移动电话", "负责人", "地址", "邮编", "网站", "电邮", "QQ", "开户银行", "银行卡号", "传真", "客户来源", "客户类型", "所在地区", "客户等级", "所属员工", "事实客户", "建档日期", "未知日期", "行业", "产品", "自定三", "法人", "自定五", "备注", "简称", " 短简拼", "所属部门", "是否共享", "销售折扣", "是否会员", "会员卡号", "积分", "上传状态", "车主名称", "车型", "发动机号", "车架号", "保险种类", "保险起始日", "保险终止日", "行驶证年审", "驾驶证年审", "已审", "整车号", "证件号", "车身颜色" }; DbColumn = new string[] { "mc", "tybz", "qc", "pycode", "customer_id", "phone", "mobile", "linkman", "address", "postcode", "web", "email", "oicq", "bank", "banknumber", "fax", "custsource", "custtype", "custarea", "custgrade", "custattach", "custflag", "regidate", "nextdate", "custom1", "custom2", "custom3", "custom4", "custom5", "memo", "forshort", "shortpy", "dept", "shares", "xszk", "vipfalg", "vipnumber", "integral", "upload", "cz", "cx", "fdjhm", "cjhm", "bxzl", "bx_dates", "bx_datee", "ns_date", "sc_date", "ischeck", "zchm", "zjhm", "csys" }; break; case "会员卡资料": PrePickedItems = GetCheckedValue(dgvMasterPreview, 2); PreAllItems = GetWholeValue(dgvMasterPreview, 2); filterString = "cz Like '%" + tbKeyword.Text + "%' Or cp Like '%" + tbKeyword.Text + "%'"; HeaderText = new string[] { "customer_id", "vipno", "cz", "mobile", "address", "phone", "id", "birthday", "vipclass", "viptype", "vippwd", "integral", "integrals", "integraled", "card_date", "card_dates", "card_datee", "card_ysje", "card_ssje", "card_ye", "xszk", "wxzk", "cx", "fdjhm", "cjhm", "byzq", "byrq", "ns_date", "ns_jsz", "tran", "users", "zt", "cp", "byrq_next", "other1", "comp_code" }; DbColumn = new string[] { "customer_id", "vipno", "cz", "mobile", "address", "phone", "id", "birthday", "vipclass", "viptype", "vippwd", "integral", "integrals", "integraled", "card_date", "card_dates", "card_datee", "card_ysje", "card_ssje", "card_ye", "xszk", "wxzk", "cx", "fdjhm", "cjhm", "byzq", "byrq", "ns_date", "ns_jsz", "tran", "users", "zt", "cp", "byrq_next", "other1", "comp_code" }; break; case "销售单": PrePickedItems = GetCheckedValue(dgvMasterPreview, 2); PreAllItems = GetWholeValue(dgvMasterPreview, 2); filterString = "khmc Like '%" + tbKeyword.Text + "%'"; HeaderText = new string[] { "xh", "yw_code", "khmc", "rq", "je", "zk", "fphm", "bjdh", "czr", "zje", "zcb", "zt", "bz", "xszt", "xs_id", "memo", "customer_id", "vipno", "download", "ywy" }; DbColumn = new string[] { "xh", "yw_code", "khmc", "rq", "je", "zk", "fphm", "bjdh", "czr", "zje", "zcb", "zt", "bz", "xszt", "xs_id", "memo", "customer_id", "vipno", "download", "ywy" }; break; case "维修历史": PrePickedItems = GetCheckedValue(dgvMasterPreview, 2); PreAllItems = GetWholeValue(dgvMasterPreview, 2); filterString = "cz Like '%" + tbKeyword.Text + "%' Or cp Like '%" + tbKeyword.Text + "%'"; HeaderText = new string[] { "xh", "yw_code", "yw_date", "cp", "cx", "cz", "jcr", "gzk", "fdjhm", "cjhm", "jc_date", "xllb", "gjwg_date", "gjxlfy", "gjljfy", "jclc", "dw", "yl", "khdz", "lxr", "lxdh", "js_date", "cc_date", "jsfs", "zje", "yj", "wxfzj", "wxzk", "wxcb", "clfzj", "clzk", "clcb", "fjfzj", "fjfzk", "fjfcb", "djzt", "zt", "xszt", "sxr", "fphm", "czdh", "jsd_id", "khly", "chunyou", "csys", "jxdw", "customer_id", "download", "gc_date", "zchm", "zjhm", "modify_control" }; DbColumn = new string[] { "xh", "yw_code", "yw_date", "cp", "cx", "cz", "jcr", "gzk", "fdjhm", "cjhm", "jc_date", "xllb", "gjwg_date", "gjxlfy", "gjljfy", "jclc", "dw", "yl", "khdz", "lxr", "lxdh", "js_date", "cc_date", "jsfs", "zje", "yj", "wxfzj", "wxzk", "wxcb", "clfzj", "clzk", "clcb", "fjfzj", "fjfzk", "fjfcb", "djzt", "zt", "xszt", "sxr", "fphm", "czdh", "jsd_id", "khly", "chunyou", "csys", "jxdw", "customer_id", "download", "gc_date", "zchm", "zjhm", "modify_control" }; break; case "积分兑换项目": PrePickedItems = GetCheckedValue(dgvMasterPreview, 1); PreAllItems = GetWholeValue(dgvMasterPreview, 1); filterString = "jl_item Like '%" + tbKeyword.Text + "%'"; HeaderText = new string[] { "项目编码", "项目名称", "积分" }; DbColumn = new string[] { "jl_code", "jl_item", "score" }; break; } } private void BindingCustomer() { ClearDataGridView(); CreateCheckBoxColumn(HeaderText, DbColumn); CustomerDB customer = new CustomerDB(); dtOriginal = (rbUnSend.Checked) ? customer.UnSendMasterDT("Customers") : customer.SendedMasterDT("Customers"); InitDataBind(dtOriginal, HeaderText, DbColumn); GridCount(dtOriginal); } private void BindingRepair() { ClearDataGridView(); CreateCheckBoxColumn(HeaderText, DbColumn); RepairDB repair = new RepairDB(); dtOriginal = (rbUnSend.Checked) ? repair.UnSendMasterDT("RepairMain") : repair.SendedMasterDT("RepairMain"); InitDataBind(dtOriginal, HeaderText, DbColumn); GridCount(dtOriginal); } private void BindingVIPCard() { ClearDataGridView(); CreateCheckBoxColumn(HeaderText, DbColumn); VIPCardDB vip = new VIPCardDB(); dtOriginal = (rbUnSend.Checked) ? vip.UnSendMasterDT("VIPCard_Main") : vip.SendedMasterDT("VIPCard_Main"); InitDataBind(dtOriginal, HeaderText, DbColumn); GridCount(dtOriginal); } private void BindingSaleList() { ClearDataGridView(); CreateCheckBoxColumn(HeaderText, DbColumn); SaleListDB sale = new SaleListDB(); dtOriginal = (rbUnSend.Checked) ? sale.UnSendMasterDT("SaleListMain") : sale.SendedMasterDT("SaleListMain"); InitDataBind(dtOriginal, HeaderText, DbColumn); GridCount(dtOriginal); } private void BindingCreditConvert() { ClearDataGridView(); CreateCheckBoxColumn(HeaderText, DbColumn); CreditConvertDB creadit = new CreditConvertDB(); dtOriginal = (rbUnSend.Checked) ? creadit.UnSendConvertItemDT("CreditConvert") : creadit.UnSendConvertItemDT("CreditConvert"); InitDataBind(dtOriginal, HeaderText, DbColumn); GridCount(dtOriginal); } private void ClearDataGridView() { DataTable dt = null; dgvMasterPreview.Columns.Clear(); dgvMasterPreview.Rows.Clear(); dgvMasterPreview.DataSource = dt; } private void CreateCheckBoxColumn(string[] headerText, string[] dbColumn) { DataGridViewCheckBoxColumn colCheckBox = new DataGridViewCheckBoxColumn(); colCheckBox.HeaderText = "勾选"; dgvMasterPreview.Columns.Add(colCheckBox); for (int i = 0; i < headerText.Length; i++) { DataGridViewTextBoxColumn colText = new DataGridViewTextBoxColumn(); colText.HeaderText = headerText[i].ToString(); colText.DataPropertyName = dbColumn[i].ToString(); dgvMasterPreview.Columns.Add(colText); } } private void InitDataBind(DataTable dt, string[] headerText, string[] colText) { if (dt != null) { for (int j = 0; j < dt.Rows.Count; j++) { dgvMasterPreview.Rows.Add(); for (int k = 0; k < headerText.Length; k++) { dgvMasterPreview.Rows[j].Cells[k + 1].Value = dt.Rows[j][colText[k]]; } } } } private void WholeBind() { switch (cbxDataType.SelectedItem.ToString()) { case "客户资料": BindingCustomer(); break; case "会员卡资料": BindingVIPCard(); break; case "销售单": BindingSaleList(); break; case "维修历史": BindingRepair(); break; case "积分兑换项目": BindingCreditConvert(); break; } } private void GridCount(DataTable dt) { int dtCount = (dt == null) ? 0 : dt.Rows.Count; string status = (rbUnSend.Checked) ? rbUnSend.Text : rbSended.Text; tsslbStatus.Text = status + cbxDataType.SelectedItem.ToString() + " " + dtCount.ToString() + " 笔"; } private DataTable Filter(DataTable dtFrom, string filter) { if (dtFrom != null) { DataTable dtTo; DataRow[] rows = dtFrom.Select(filter); dtTo = dtFrom.Clone(); foreach (DataRow row in rows) { dtTo.ImportRow(row); } return dtTo; } else return null; } private void tbKeyword_TextChanged(object sender, EventArgs e) { Prepare(); ClearDataGridView(); CreateCheckBoxColumn(HeaderText, DbColumn); DataTable dtFilter = Filter(dtOriginal, filterString); InitDataBind(dtFilter, HeaderText, DbColumn); GridCount(dtFilter); } private string GetCheckedValue(DataGridView dgv, int columnIndex) { string items = ""; for (int i = 0; i < dgv.Rows.Count; i++) { string CheckedValues = dgv.Rows[i].Cells[0].EditedFormattedValue.ToString(); if (CheckedValues == "True") { items += dgv.Rows[i].Cells[columnIndex].Value.ToString() + ","; } else items += ""; } return items; } private string GetWholeValue(DataGridView dgv, int columnIndex) { string items = ""; if (dgv.Rows.Count > 0) { for (int i = 0; i < dgv.Rows.Count; i++) { items += dgv.Rows[i].Cells[columnIndex].Value + ","; } } else items += ""; return items; } private string MasterJson(DataTable dtm) { string tempMaster; if (dtm == null) { tempMaster = ""; } else { tempMaster = Converter.DataTableToJson(dtm); tempMaster = Regex.Replace(tempMaster, @"\\/Date\((\d+)\)\\/", match => { DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value)); dt = dt.ToLocalTime(); return dt.ToString("yyyy-MM-dd HH:mm:ss"); }); } return tempMaster; } private string DetailJson(DataTable dtd) { string tempDetail; if (dtd == null) { tempDetail = ""; } else { tempDetail = Converter.DataTableToJson(dtd); tempDetail = Regex.Replace(tempDetail, @"\\/Date\((\d+)\)\\/", match => { DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value)); dt = dt.ToLocalTime(); return dt.ToString("yyyy-MM-dd HH:mm:ss"); }); } return tempDetail; } private void SendOut(JsonBodies json) { CallWebService cws = new CallWebService(); switch (cbxDataType.SelectedItem.ToString()) { case "客户资料": string[] arg_xskh = new string[3] { json.Main, garages.ID, garages.Title }; cws.Add_fb_xskh(arg_xskh); CustomerDB customer = new CustomerDB(); int customerSendCount = customer.UpdateStatus(finalItems); MessageBox.Show("客户资料 " + customerSendCount.ToString() + " 笔上传完成"); break; case "销售单": string[] arg_xsdmain = new string[2] { json.Main, garages.ID }; string[] arg_xsdmx = new string[2] { json.SingleDetail, garages.ID }; SaleListDB sale = new SaleListDB(); cws.Add_qp_xsmain(arg_xsdmain); int SaleListMainSendCount = sale.UpdateStatus(finalItems); cws.Add_qp_xsmx(arg_xsdmx); MessageBox.Show("销售单 " + SaleListMainSendCount.ToString() + " 笔上传完成"); break; case "会员卡资料": string[] arg_vip_main = new string[2] { json.Main, garages.ID }; string[] arg_vip_serviceitem = new string[2] { json.FirstDetail, garages.ID }; string[] arg_vip_history = new string[2] { json.SecondDetail, garages.ID }; string[] arg_vip_recharge = new string[2] { json.ThirdDetail, garages.ID }; VIPCardDB vip = new VIPCardDB(); ; cws.Add_VIPCard_Main(arg_vip_main); int sendVIPMainCount = vip.UpdateStatusMain(finalItems); cws.Add_VIPCard_Detail(arg_vip_serviceitem); int sendVIPCardDetailCount = vip.UpdateStatusServiceItemCriteria(finalItems); cws.Add_VIPCard_History(arg_vip_history); int sendVIPCardHistory = vip.UpdateStatusHistoryCriteria(finalItems); cws.Add_VIPCard_Recharge(arg_vip_recharge); int sendVIPCardRecharge = vip.UpdateStatusRechargeCriteria(finalItems); MessageBox.Show("会员卡资料 " + sendVIPMainCount.ToString() + " 笔上传完成"); break; case "维修历史": string[] arg_repair_main = new string[2] { json.Main, garages.ID }; string[] arg_repairitem = new string[2] { json.FirstDetail, garages.ID }; string[] arg_repairmaterial = new string[2] { json.SecondDetail, garages.ID }; string[] arg_repairotherfee = new string[2] { json.ThirdDetail, garages.ID }; cws.Add_qx_jsd_main(arg_repair_main); cws.Add_qx_jsdmx_xlxm(arg_repairitem); cws.Add_qx_jsdmx_pjclmx(arg_repairmaterial); cws.Add_qx_jsdmx_qtfy(arg_repairotherfee); RepairDB repair = new RepairDB(); int sendRepairMain = repair.UpdateStatusMain(finalItems); MessageBox.Show("维修历史 " + sendRepairMain.ToString() + " 笔上传完成"); break; case "积分兑换项目": string[] arg_creditconvert = new string[2] { json.Main, garages.ID }; cws.Add_Sys_VipCard_jl_item(arg_creditconvert); CreditConvertDB credit = new CreditConvertDB(); int sendConvertItem = credit.UpdateStatusConvertItemCriteria(finalItems); MessageBox.Show("积分兑换项目 " + sendConvertItem.ToString() + " 笔上传完成"); break; } } private void JsonSendOut() { switch (cbxDataType.SelectedItem.ToString()) { case "客户资料": CustomerDB customer = new CustomerDB(); if (SendMode == "All" || finalItems.Length > 0) { Json.Main = MasterJson(customer.UnSendMasterCriteriaDT("Customers", finalItems)); SendOut(Json); } else MessageBox.Show("请选取要上传的客户资料"); break; case "销售单": SaleListDB sale = new SaleListDB(); if (SendMode == "All" || finalItems.Length > 0) { Json.Main = MasterJson(sale.UnSendMasterCriteriaDT("SaleListMain", finalItems)); Json.SingleDetail = DetailJson(sale.UnSendDetailCriteriaDT("SaleListDetail", finalItems)); SendOut(Json); } else MessageBox.Show("请选取要上传的销售单"); break; case "会员卡资料": VIPCardDB vip = new VIPCardDB(); if (SendMode == "All" || finalItems.Length > 0) { Json.Main = MasterJson(vip.UnSendMasterCriteriaDT("VIPCardMain", finalItems)); Json.FirstDetail = DetailJson(vip.UnSendServiceItemCriteriaDT("VIPCardServiceItem", finalItems)); Json.SecondDetail = DetailJson(vip.UnSendHistoryCriteriaDT("VIPCardHistory", finalItems)); Json.ThirdDetail = DetailJson(vip.UnSendRechargeCriteriaDT("VIPCardRecharge", finalItems)); SendOut(Json); } else MessageBox.Show("请选取要上传的会员卡资料"); break; case "维修历史": RepairDB repair = new RepairDB(); if (SendMode == "All" || finalItems.Length > 0) { Json.Main = MasterJson(repair.UnSendMasterCriteriaDT("RepairMain", finalItems)); Json.FirstDetail = DetailJson(repair.UnSendRepairItemCriteriaDT("RepairItem", finalItems)); Json.SecondDetail = DetailJson(repair.UnSendMaterialCriteriaDT("RepairMaterial", finalItems)); Json.ThirdDetail = DetailJson(repair.UnSendOtherFeeCriteriaDT("RepairOtherFee", finalItems)); SendOut(Json); } else MessageBox.Show("请选取要上传的维修历史"); break; case "积分兑换项目": CreditConvertDB credit = new CreditConvertDB(); if (SendMode == "All" || finalItems.Length > 0) { Json.Main = MasterJson(credit.UnSendConvertItemCriteriaDT("CreditConvertItem", finalItems)); SendOut(Json); } else MessageBox.Show("请选取要上传的积分兑换项目"); break; } } private void ResetStatus() { switch (cbxDataType.SelectedItem.ToString()) { case "客户资料": CustomerDB customer = new CustomerDB(); if (ResetMode == "All" || finalItems.Length > 0) { int resetCustomerCount = customer.ResetStatus(finalItems); MessageBox.Show("客户档案已还原 " + resetCustomerCount.ToString() + " 笔"); } else tsslbStatus.Text = ""; break; case "销售单": SaleListDB sale = new SaleListDB(); if (ResetMode == "All" || finalItems.Length > 0) { int resetSaleCount = sale.ResetStatus(finalItems); MessageBox.Show("销售单已还原 " + resetSaleCount.ToString() + " 笔"); } else tsslbStatus.Text = ""; break; case "会员卡资料": VIPCardDB vip = new VIPCardDB(); if (ResetMode == "All" || finalItems.Length > 0) { int resetVIPMainCount = vip.ResetStatusMain(finalItems); int resetVIPServiceItemCount = vip.ResetStatusServiceItemCriteria(finalItems); int resetVIPHistoryCount = vip.ResetStatusHistoryCriteria(finalItems); int resetVIPRechargeCount = vip.ResetStatusRechargeCriteria(finalItems); MessageBox.Show("会员资料已还原 " + resetVIPMainCount.ToString() + " 笔"); } else tsslbStatus.Text = ""; break; case "维修历史": RepairDB repair = new RepairDB(); if (ResetMode == "All" || finalItems.Length > 0) { int resetRepairMainCount = repair.ResetStatusMain(finalItems); MessageBox.Show("维修历史已还原 " + resetRepairMainCount.ToString() + " 笔"); } else tsslbStatus.Text = ""; break; case "积分兑换项目": CreditConvertDB credit = new CreditConvertDB(); if (ResetMode == "All" || finalItems.Length > 0) { int resetCreditConvertCount = credit.ResetStatusConvertItemCriteria(finalItems); MessageBox.Show("维修历史已还原 " + resetCreditConvertCount.ToString() + " 笔"); } else tsslbStatus.Text = ""; break; } } } }
相关文章推荐
- 真机和虚拟设备共存,测试程序如何选择设备
- 【转】lnmp_auto:自动化安装lnmp环境脚本
- java小白的成长路(一)
- UITableView的cell一些设置
- 使用git在本地创建一个项目的过程
- Metal Feature Set Tables
- Dynamic Code Evolution for Java dcevm 原理
- python包模块实例
- 真机调试相关
- 【原创教程】JavaScript详解之语法和对象
- HTTPS其实是有两部分组成:HTTP + SSL / TLS
- C# DEBUG 调试信息打印及输出详解
- listview 平滑移动到最后一条
- hostswap dcevm
- HotSpot VM GC 的种类
- 二叉平衡树的基本操作(完整代码)
- MVC模式
- oracle study
- Xcode6以上版本添加Pch文件
- Android中的事件模型