可以的,但我同时操作ACCESS数据库与SQL数据库就报错误:using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; using System.EnterpriseServices; using System.Data.SqlClient; using System.Data.OleDb;namespace JiangHua { /// <summary> /// 利用web Service与COM+实现分布式事物。 /// </summary> public class Bank : System.Web.Services.WebService { public Bank() {
------------------------------------------------------
我是说修改会被立即更新
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.EnterpriseServices;
using System.Data.SqlClient;
using System.Data.OleDb;namespace JiangHua
{
/// <summary>
/// 利用web Service与COM+实现分布式事物。
/// </summary>
public class Bank : System.Web.Services.WebService
{ public Bank()
{
InitializeComponent();
} #region 组件设计器生成的代码
//Web 服务设计器所必需的
private IContainer components = null;
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion // 利用web Service与COM+实现分布式事物。
[WebMethod(TransactionOption = TransactionOption.RequiresNew)]
public string MoneyAccessToSqlServer(int money)
{
try
{ //实现一个自动的事物----同步SQLServer 与Access数据库中BANK的内容
ContextUtil.EnableCommit();
this.SubAccess(money); //访问ACCESS数据库
this.AddSqlServer(money); //访问SqlServer数据库
ContextUtil.SetComplete(); //如果扣款与加款都成功 return "转帐成功!";
}
catch(Exception e)
{
ContextUtil.SetAbort(); //如果发生异常的就回滚事物。
return "转帐失败:" + e.Message.ToString();
}
} public void SubAccess(int money) //同步ACCESS数据库
{
try
{
SqlConnection cnn = new SqlConnection("server=172.17.1.3;uid=sa;pwd=;database=JCard");
cnn.Open();
SqlCommand cmd = new SqlCommand("UPDATE Bank Set moneys = moneys + " + money.ToString() + " WHERE id = 1",cnn);
cmd.ExecuteNonQuery();
} catch(Exception e)
{
throw new Exception("ACCESS失败:" + e.Message.ToString());
}
//throw new Exception("操作失败了!"); //手工抛出一个异常
} public void AddSqlServer(int money) //同步SQLSERVER数据库
{
try
{
SqlConnection cnn = new SqlConnection("server=localhost;uid=sa;pwd=;database=JCardOline");
cnn.Open();
SqlCommand cmd = new SqlCommand("UPDATE Bank Set moneys = moneys + " + money.ToString() + " WHERE id = 1",cnn);
cmd.ExecuteNonQuery();
}
catch(Exception e)
{
throw new Exception("SQL失败:" + e.Message.ToString());
}
}
}
}