龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

.net开发应用分布式事务例子

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
Web开发编程软件 界面设计软件! using System;//引用系统命名空间 using System.Data.OleDb;//引用ADO.net命名空间 using System.Data;//引用数据空间 using System.Runtime.InteropServices;//为了调用GUID using Sys

Web开发编程软件 界面设计软件!

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();

  }
 }
}

精彩图集

赞助商链接