asp.net 使用事务机制

  using (System.Data.Common.DbTransaction traction = context.Connection.BeginTransaction())
                {
                    try
                    {
                        SRC_DEF_BASELINE_ALART t = new SRC_DEF_BASELINE_ALART();
                        //新添加的SRC_DEF_BASELINE_ALART的ID位已有的加1
                        short i;
                        if (context.SRC_DEF_BASELINE_ALART.Count() > 0)
                        {
                            i = context.SRC_DEF_BASELINE_ALART.Max(p => p.ALERT_ID);
                        }
                        else
                        {
                            i = 0;
                        }
                        t.ALERT_ID = (short)(i + 1);
                        t.ALERT_NAME = "lx";
                        t.DEFINE_PERSON = "zlf";
                        t.DEFINE_TIME = DateTime.Now;
                        t.PROGRESS_LEVEL_1 = short.Parse(TextBoxjdpc1.Text);
                        t.PROGRESS_LEVEL_2 = short.Parse(TextBoxjdpc2.Text);
                        t.PROGRESS_LEVEL_3 = short.Parse(TextBoxjdpc3.Text);
                        t.PROCEDURE_LEVEL_1 = short.Parse(TextBoxgypc1.Text);
                        t.PROCEDURE_LEVEL_2 = short.Parse(TextBoxgypc2.Text);
                        t.PROCEDURE_LEVEL_3 = short.Parse(TextBoxgypc3.Text);
                        t.TEMP_WORK_LEVEL_1 = short.Parse(TextBoxlspc1.Text);
                        t.TEMP_WORK_LEVEL_2 = short.Parse(TextBoxlspc2.Text);
                        t.TEMP_WORK_LEVEL_3 = short.Parse(TextBoxlspc3.Text);
                        t.QUESTION_LIST_LEVEL_1 = short.Parse(TextBoxjswt1.Text);
                        t.QUESTION_LIST_LEVEL_2 = short.Parse(TextBoxjswt2.Text);
                        t.QUESTION_LIST_LEVEL_3 = short.Parse(TextBoxjswt3.Text);
                        t.PROGRESS_DEV_ALERT_METHOD = dropdownProgress.SelectedItem.ToString();
                        context.CreateObjectSet<SRC_DEF_BASELINE_ALART>().AddObject(t);
                        //应用到平台
                        foreach (ListItem item in cblPlatform.Items)
                        {
                            if (item.Selected)
                            {
                                SRC_DEF_PLATFORM plat = (from p in context.SRC_DEF_PLATFORM
                                                         where p.PLATFORM_NAME == item.Text
                                                         select p).Single();
                                if (plat.ALERT_ID != null)
                                {
                                    if (MessageBox.Show("平台:'"+plat.PLATFORM_NAME + "'已经分配到预警X中,是否执行新的预警设置?", "确认信息:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                                    {
                                        plat.ALERT_ID = t.ALERT_ID;
                                    }
                                }
                                else
                                {
                                    plat.ALERT_ID = t.ALERT_ID;
                                }
                            }
                        }
                        context.SaveChanges(SaveOptions.DetectChangesBeforeSave);
                        traction.Commit();
                        Response.Redirect("mainAlerts.aspx");
                    }
                    catch (Exception ex)
                    {
                        traction.Rollback();
                        throw ex;
                    }

 

posted @ 2013-05-13 15:59  louiskoo  阅读(223)  评论(0编辑  收藏  举报