.net分布式事务例子

作者:网络 来源:佚名 更新时间:2008-02-06 06:42:44 点击:
using system;//引用系统命名空间
using system.data.oledb;//引用ado.net命名空间
using system.data;//引用数据空间
using system.runtime.interopservices;//为了调用guid
using system.enterpriseservices;//引用com+名命空间
using system.runtime.compilerservices;//运行时编译服务器
using system.reflection;//用些全局属性取得强名属性
using system.data.sqlclient;
[assembly: applicationname("comlibrary")]
//强名文件名和文件属性。用sn.exe生成,用法 sn -k clsstock.snk
//[assembly: assemblykeyfileattribute("clsstock.snk")]
//[assembly: assemblykeyname("clsstock.snk")]
[assembly: assemblykeyfileattribute("..\\..\\clsstock.snk")]
[assembly: assemblykeyname("..\\..\\clsstock.snk")]
namespace comlibrary
{
[transaction(transactionoption.required)]
public class dboperation:servicedcomponent
{

private sqlconnection myconnection;
private sqlcommand mycommand;

/// <summary>
/// connect database
/// </summary>
/// <param name=”connection”>database config infomation
/// formatting : datasource=..;user id=..;password=...
/// </param>
/// <returns></returns>
public void connect()
{
string connection="workstation id=yanlixin;packet size=4096;user id=sa;data source=\"yanlixin\\scgl\";p" +
"ersist security info=true;initial catalog=scgl;password=scgl";
//
myconnection = new sqlconnection( connection );
myconnection.open();

mycommand = new sqlcommand();
mycommand.connection = myconnection;

return;
}

/// <summary>
/// execute one insert statement and insert one record into the table
/// </summary>
/// <param name=”connection”>database config infomation
/// formatting : datasource=..;user id=..;password=...
/// </param>
/// <returns></returns>

public int commandexcute(string commandstring)
{

int returnvalue = 0;

mycommand.commandtext = commandstring;
returnvalue = mycommand.executenonquery();

return returnvalue;

}

/// <summary>
/// commit the com+ transaction
/// </summary>

public void commit()
{

contextutil.setcomplete();

if(myconnection!=null)
myconnection.close();

}

/// <summary>
/// roolback the com+ transaction
/// </summary>

public void abort()
{

contextutil.setabort();

if(myconnection!=null)
myconnection.close();

}

}
}