以下代码有什么问题?怎么才能让事务回滚?
我不用TransactionScope事务
请明确的告诉我,错在哪谢谢大家
这个程序集目前已经的强名称了,就是无法回滚,似乎哪写错了using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data.SqlClient; 
using System.EnterpriseServices; namespace Project 

    
    public class Program 
    { 
        
        static void Main(string[] args) 
        { 
            Test test = new Test(); 
            test.add1(); 
            test.add2();         } 
        
    }     //如果事务存在则共享事务 
    [Transaction(TransactionOption.Supported)] 
    public class Test : ServicedComponent    //所有COM+服务的基类 
    { 
        //自动事务处理属性 
        [AutoComplete] 
        public void add1() 
        { 
            SqlConnection con = new SqlConnection("server=.;database=Test;uid=sa;pwd=sa"); 
            con.Open(); 
            SqlCommand cmd = new SqlCommand("insert into TestTable values(1,'张三')", con); 
            cmd.ExecuteNonQuery();         } 
        //自动事务处理属性 
        [AutoComplete] 
        public void add2() 
        { 
            SqlConnection con = new SqlConnection("server=.;database=Test;uid=sa;pwd=sa"); 
            con.Open(); 
            SqlCommand cmd = new SqlCommand("insert into TestTables values(2,'张四')", con); 
            cmd.ExecuteNonQuery();         } 
    } 

解决方案 »

  1.   

      COM+事务最终都是基于DTC的,可以试试用ServiceDomain,ContextUtil这些组件自己再封装一下. 效果也不错的.
      

  2.   

    记得好像如果你这样写的话,要在事务的环境下才会开始事务的,就是如果你放在transactionscope里就会有事务。然后你有没有把你的com+的组件dll regsvc到com+组件服务里去?
      

  3.   

    发表于:2009-03-13 23:55:102楼 得分:0 
    记得好像如果你这样写的话,要在事务的环境下才会开始事务的,就是如果你放在transactionscope里就会有事务。 然后你有没有把你的com+的组件dll regsvc到com+组件服务里去? 
    注册进com+里面了代码方便的问题,能帮我写出来吗?