部分代码如下:
业务层:(也就是要注册com+服务的dll)using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using TestData;
using System.EnterpriseServices;
using System.Reflection;
using System.Runtime.CompilerServices;[assembly:ApplicationName("ComPlusExample")]
//至于.snk在Assembly.info里面添加了
namespace TestBusiness
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
///
[Transaction(TransactionOption.Required)]
public class ClassBusiness:ServicedComponent
{
public Class1 classData;
public ClassBusiness()
{
classData=new Class1(); } [AutoComplete]
public bool RunProc(string commandText)
{
try
{
classData.RunProc(commandText);
classData.CloseCon();
ContextUtil.SetComplete();
}
catch
{
ContextUtil.SetAbort();
}
return true;
} public bool UpdateData(string what,string where,string condition)
{
string commandText="UPDATE "+where+" SET CompanyName ='"+what+"'WHERE CustomerID='"+condition+"'";
this.RunProc(commandText);
return true;
} public bool InsertData(string CID,string ComName)
{
string commandText="Insert Into Customers(CustomerID,CompanyName) VALUES ("+CID+","+ComName+")";
this.RunProc(commandText);
return true; }
}
}页面调用服务:
private void Button9_Click(object sender, System.EventArgs e)
{
//测试事务能否处理
ClassBusiness business=new ClassBusiness();
business.UpdateData("1","customers","1");
}
业务层:(也就是要注册com+服务的dll)using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using TestData;
using System.EnterpriseServices;
using System.Reflection;
using System.Runtime.CompilerServices;[assembly:ApplicationName("ComPlusExample")]
//至于.snk在Assembly.info里面添加了
namespace TestBusiness
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
///
[Transaction(TransactionOption.Required)]
public class ClassBusiness:ServicedComponent
{
public Class1 classData;
public ClassBusiness()
{
classData=new Class1(); } [AutoComplete]
public bool RunProc(string commandText)
{
try
{
classData.RunProc(commandText);
classData.CloseCon();
ContextUtil.SetComplete();
}
catch
{
ContextUtil.SetAbort();
}
return true;
} public bool UpdateData(string what,string where,string condition)
{
string commandText="UPDATE "+where+" SET CompanyName ='"+what+"'WHERE CustomerID='"+condition+"'";
this.RunProc(commandText);
return true;
} public bool InsertData(string CID,string ComName)
{
string commandText="Insert Into Customers(CustomerID,CompanyName) VALUES ("+CID+","+ComName+")";
this.RunProc(commandText);
return true; }
}
}页面调用服务:
private void Button9_Click(object sender, System.EventArgs e)
{
//测试事务能否处理
ClassBusiness business=new ClassBusiness();
business.UpdateData("1","customers","1");
}
把
public ClassBusiness()
{
classData=new Class1();
}
改成
public ClassBusiness()
{
}
试试
[Transaction(TransactionOption.Required )]
try
[Transaction(TransactionOption.Required),ClassInterface(ClassInterfaceType.AutoDual)]
public class ClassBusiness:ServicedComponent