.net分布式事務例子
2024-07-10 12:59:04
供稿:網友
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();
}
}
}