c# 用TransactionScope处理操作两个数据库的事务,事务处理完要1.3s左右,怎么优化?这个时间太长了

代码1:publicdelegateintfun1();publicdelegateintfun2();///<summary>///两个不同数据库的事务处理///</s... 代码1:
public delegate int fun1();
public delegate int fun2();
/// <summary>
/// 两个不同数据库的事务处理
/// </summary>
/// <param name="function1">数据库操作函数的委托</param>
/// <param name="function2">数据库操作函数的委托</param>
/// <returns>0:表示成功,1:表示第一个数据库操作失败,2:第二个数据库失败,3:</returns>
public static int DBtranction(fun1 function1,fun2 function2)
{
using (TransactionScope ts = new TransactionScope())
{
int i= function1();
int i1=function2();
if (i == 1 && i1 == 1)
{
ts.Complete(); return 0;
}
else if (i < 1) { return 1; }
else if (i1 < 1) { return 2; }
else { return 3; }
}
}
----------------
代码2:
public static int TransRe(string sqlkey1,string sqlkey2)
{
return DBtranction(
() =>
{
return Remove(sqlkey1);//从第一个数据库删除一个数据

},
() =>
{
SqlParameter[] para = { new SqlParameter("key", sqlkey2) };
return sqlHelp.sqlhelp2.ExecutSQL("delete from us where id=@key",System.Data.CommandType.Text,para);//从第二个数据库删除一个数据
});

}
-------------------------------
展开
 我来答
阳光的雷咩咩
2016-12-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7807万
展开全部
猜想应该是由于你每次执行sql都重新打开关闭连接。不信看ExecutSQL函数内部实现
追问
虽然不是你说的那样,不过已经解决了,现在只需要几十毫秒,还是要谢谢你。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式