.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)

浙公网安备 33010602011771号