/// <summary> /// ������Ʒ���� /// </summary> /// <param name="oParam"></param> public void UpdateAttribute2(int paramProductSysNo, Hashtable htText, Hashtable htOption) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { Hashtable ht_Old = GetProductAttribute2Value(paramProductSysNo); ProductAttributeDac pa = new ProductAttributeDac(); foreach (string key in htText.Keys) { ProductAttribute2Info oParam = new ProductAttribute2Info(); oParam.ProductSysNo = paramProductSysNo; oParam.Attribute2SysNo = int.Parse(key); oParam.Attribute2Value = htText[key].ToString(); oParam.Attribute2OptionSysNo = 0; //default value is 0 if (ht_Old != null && ht_Old.Count > 0 && ht_Old.ContainsKey(key)) { pa.Update(oParam); } else { pa.Insert(oParam); } } foreach (string key in htOption.Keys) { ProductAttribute2Info oParam = new ProductAttribute2Info(); oParam.ProductSysNo = paramProductSysNo; oParam.Attribute2SysNo = int.Parse(key); oParam.Attribute2OptionSysNo = int.Parse(htOption[key].ToString()); oParam.Attribute2Value = ""; // default value is "" if (ht_Old != null && ht_Old.Count > 0 && ht_Old.ContainsKey(key)) { pa.Update(oParam); } else { pa.Insert(oParam); } } if (ht_Old != null && ht_Old.Count > 0) { foreach (string key in ht_Old.Keys) { if (!htText.ContainsKey(key) && !htOption.ContainsKey(key)) { pa.DeleteProductAttribute2(paramProductSysNo, Util.TrimIntNull(key)); } } } scope.Complete(); } }