private void SetTransaction()
    {    ///创建LinqDB数据库上下文的实例
        LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
        
        ///创建TransactionScope事务
        using(TransactionScope ts = new TransactionScope())
        {
            try
            {
                Product p1 = db.Product.First(p => p.ID > 1);
                Product p2 = db.Product.First(p => p.ID > 2);
                ///修改商品的库存和销售数量
                p1.SaleNumber += 10;
                p1.Stock += 10;    
                p2.SaleNumber += 20;
                p2.Stock -= 20;
                ///将修改提交到数据库
                db.SubmitChanges();
                Response.Write(p1.ID + "   " + p2.ID);
            }
            catch(Exception ex)
            {
                Response.Write("修改商品库存发生错误,原因如下:<br />" + ex.Message);
            }
        }
    }为什么我用了Using(ransactionScope....... 
那段后对数据库的更新不起作用,而且也不报错 
但注释using(TransactionScope ts = new TransactionScope())对数据库的操作又起作用 试了很多只要加 TransactionScope 就不对了

解决方案 »

  1.   

    低级错误...难道你不知道事务要提交才执行的吗?在using块最后加上...
    ts.Complete();
      

  2.   


    private void SetTransaction()
        {    ///创建LinqDB数据库上下文的实例
            LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
            
            ///创建TransactionScope事务
            using(TransactionScope ts = new TransactionScope())
            {
                try
                {
                    Product p1 = db.Product.First(p => p.ID > 1);
                    Product p2 = db.Product.First(p => p.ID > 2);
                    ///修改商品的库存和销售数量
                    p1.SaleNumber += 10;
                    p1.Stock += 10;    
                    p2.SaleNumber += 20;
                    p2.Stock -= 20;
                    ///将修改提交到数据库
                    db.SubmitChanges();
                    Response.Write(p1.ID + "   " + p2.ID);
                }
                catch(Exception ex)
                {
                    Response.Write("修改商品库存发生错误,原因如下:<br />" + ex.Message);
                }
                ts.Complete();//提交事物,如不提交或者是发生异常事物会自动回滚
            }
        }