现在的位置: 首页 > 综合 > 正文

C# 事务处理的简单例子

2013年09月29日 ⁄ 综合 ⁄ 共 2610字 ⁄ 字号 评论关闭

TransactionManager tran = DataRepository.Provider.CreateTransaction();  //创建事物
            tran.BeginTransaction();
            try
            {
                //入库单
                entityMES = new MaterialEnterStore();
                entityMES.SupplierId = int.Parse(cbProvider.SelectedValue.ToString());
                if (cbBuyer.Text.Length >0)
                entityMES.Buyer = cbBuyer.Text.Trim();
                if (cbKeeper.Text.Length >0)
                entityMES.Keeper = cbKeeper.Text.Trim();
                //if (cbChecker.Text.Length >0)
                //entityMES.Checker = cbChecker.Text.Trim();
                entityMES.TotalMoney = totalMoney;
                entityMES.EnterStoreNumber = decimal.Parse(totalNumber.ToString());
                entityMES.EnterStoreTime = dtpEnter.Value;
                entityMES.BuyTime = dtpEnter.Value;
                entityMES.State = 0; //未确认
                entityMES.MaterialState = 0; //未出库
                entityMES.Atrribute = 1; //辅料
                DataRepository.MaterialEnterStoreProvider.Insert(tran, entityMES);
                //入库明细
                TList<MaterialEnterDetail> med = new TList<MaterialEnterDetail>();
                foreach (VMaterialEnterStoreDetail item in (VList<VMaterialEnterStoreDetail>)this.bindingSource1.DataSource)
                {
                    entityMED = new MaterialEnterDetail();
                    entityMED.EnterId = entityMES.EnterId;
                    entityMED.MaterialId = item.MaterialId;
                    entityMED.EnterAmount = item.EnterAmount;
                    entityMED.BuyPrice = item.BuyPrice;
                    entityMED.Measurement = item.Measurement;
                    entityMED.InvoiceId = item.InvoiceId;
                    entityMED.InvoiceMoney = item.InvoiceMoney;
                    entityMED.PoundAmount = item.PoundAmount;
                    entityMED.DifferenceNumber = item.DifferenceNumber;
                    entityMED.DifferenceMoney = item.DifferenceMoney;
                    entityMED.Taxmoney = item.Taxmoney;
                    entityMED.Taxrate = item.Taxrate;
                    entityMED.InvoiceId = Convert.ToInt32(1);//为了和发票类型对应起来,故意这样连接视图的
                    med.Add(entityMED);
                }
                DataRepository.MaterialEnterDetailProvider.Insert(tran,med);
                tran.Commit();
                MessageBox.Show("入库单保存成功", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Flag_Save = true;
                this.Close();

            }
            catch (Exception ex)
            {
                tran.Rollback();
                MessageBox.Show("数据库错误 原因:" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Flag_Save = false;
            }

抱歉!评论已关闭.