.net 通过COM+实例事务管理

1.新建类库,添加引用:System.EnterpriseServices;

2.继承ServicedComponent

/// <summary>
    /// Com+ 事件处理
    /// </summary> 
    [Transaction(TransactionOption.Required)]
    public class clsES:ServicedComponent
    {
 public void dbAccess(int pid,float nScore)
        {
        System.Data.SqlClient.SqlConnection conn;
try { /* * 自己的代码 **/ conn = new System.Data.SqlClient.SqlConnection("server=.user=sa;pwd=sa;database=master;"); conn.Open(); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("select * from tb_studentinfo"); cmd.ExecuteScalar(); //提交 ContextUtil.SetComplete(); conn.Close(); } catch (Exception e) { //撤消 ContextUtil.SetAbort(); conn.Close(); } } }

3.添加强名称
  a.在VS命令行中运行:sn.exe -k c:\snEnterprise.snk;
      b.把snEnterprise.snk文件拷到项目中;
      c.修改 AssemblyInfo.cs文件[assembly: ComVisible(true)]设置为true;
     [assembly:AssemblyKeyFile("..\\..\\snEnterprise.snk")];

4.生成类型

5.在VS命令行中 用regsvcs 注册类型(例:regsvcs ClassLibrary2.dll)

posted @ 2013-01-22 13:51  csdnbbs  阅读(148)  评论(0)    收藏  举报