private void SaveFormula(bool isAdd, string formulaCode, string formulaName, string formulaDate, string cigaretteName, string quantity, string operater, string formulaNo, DataTable detailTable) { using (PersistentManager pm = new PersistentManager()) { FormulaDao formulaDao = new FormulaDao(); ProductDao productDao = new ProductDao(); try { pm.BeginTransaction(); if (isAdd) formulaDao.InserMaster(formulaCode, formulaName, formulaDate, cigaretteName, quantity, formulaNo, operater); else formulaDao.UpdateMaster(formulaCode, formulaName, formulaDate, cigaretteName, quantity, formulaNo, operater); formulaDao.DeleteDetail(formulaCode); for (int i = 0; i < detailTable.Rows.Count; i++) { DataRow row = detailTable.Rows[i]; string productCode = row["PRODUCTCODE"].ToString().ToUpper(); formulaDao.InsertDetail(formulaCode, productCode, i.ToString(), row["QUANTITY"].ToString(), row["OTHERCODE"].ToString()); if (productDao.Find(productCode) == 0) { productDao.Insert(productCode, row["ORIGINAL"].ToString(), row["YEARS"].ToString(), row["GRADE"].ToString(), row["STYLE"].ToString()); } else { productDao.Update(productCode, row["ORIGINAL"].ToString(), row["YEARS"].ToString(), row["GRADE"].ToString(), row["STYLE"].ToString()); } } pm.Commit(); } catch (Exception e) { pm.Rollback(); throw new Exception(e.Message); } } }