首页 新闻 会员 周边

sql server事务处理

0
悬赏园豆:20 [已解决问题] 解决于 2014-04-01 16:07
 1 using (OMTransactionScope tran = new OMTransactionScope())
 2                 {
 5 
 6                 //入库
 7                     if (Status.prams["归档"] != null)
 8                     {
 9                         
10                         StoreIn(iFormID, pfois);
11                     }
12                    
13                 //工作流相关
14                 WFEAM_GiveBack_Apply wfBA = new WFEAM_GiveBack_Apply(daEAM_Giveback_Apply, Status.prams);
15                 AppWorkFlow wf = AppWorkFlow.CreateSingleWorkFlow(wfBA, (System.Data.SqlClient.SqlTransaction)tran.Transaction, wfc);
16 
17                 int iResult = wf.Approval(buttonType, wnc_ID, Status.Name);
18 
19                 daEAM_Giveback_Apply.AP_State = Status.Value;//更改业务状态
20                 daEAM_Giveback_Apply.AP_PostDate = DateTime.Now;//更改PostDate时间 --By Sid Mei 12.2.14
21                 daEAM_Giveback_Apply.DB_UpdateEntityByCondition("", new string[] { "AP_State", "AP_PostDate" });
22 
23                 //执行存储过程28                
29                 this.UpdateAssetAcceptSyn(dsSynbegin, int.Parse(htEntiy["iFormID"].ToString()).ToString(), tran);
30                   
31                 //提交事务
32                 tran.Complete();

代码是这样的,问:为什么有时候业务状态修改了,但入库StoreIn(iFormID, pfois);中需要修改的数据有部分为修改成功呢,StoreIn中也包含一个事物。。。

kistliu的主页 kistliu | 初学一级 | 园豆:138
提问于:2012-11-01 16:47
< >
分享
最佳答案
0

OMTransactionScope 是对 TransactionScope类的封装么? 是的话:Distributed Transaction Coordinator 这个服务要开启下...

收获园豆:20
jingjunfeng | 小虾三级 |园豆:873 | 2012-11-01 16:58

这个服务开启了 。。

kistliu | 园豆:138 (初学一级) | 2012-11-01 17:04

@kistliu: 操作的是同一个数据库么,是的话,要不就用数据库事务

jingjunfeng | 园豆:873 (小虾三级) | 2012-11-01 17:08

@kistliu: 操作的是同一个数据库么,是的话,就直接用数据库事务。不是一个数据库的话,可以写两个数据库事务,一起提交、一起回滚。

jingjunfeng | 园豆:873 (小虾三级) | 2012-11-01 17:09

@jingjunfeng:其中包含了两个数据库的操作。。现在关键是对同一个数据库中的处理的数据不一致。。

kistliu | 园豆:138 (初学一级) | 2012-11-01 17:10

@kistliu: 那就把同一数据操作的 放到一个数据事务中,依靠数据库事务..

jingjunfeng | 园豆:873 (小虾三级) | 2012-11-01 17:13

@jingjunfeng: 不行吧,我用的实体更新,并不是拼接sql

kistliu | 园豆:138 (初学一级) | 2012-11-01 17:22

@kistliu: 需要修改的数据部分 是不是没有调用提交更新.

jingjunfeng | 园豆:873 (小虾三级) | 2012-11-01 17:26

@jingjunfeng: 调用提交更新 指的什么?BatSaveByTagExtender()这就是更新批处理方法。

kistliu | 园豆:138 (初学一级) | 2012-11-01 17:29

@kistliu: 很明显是调用了的。

kistliu | 园豆:138 (初学一级) | 2012-11-01 17:31
其他回答(1)
0

哎,今天进来看下这个问题还没关,说明下,是另一个项目中需要同步数据的时候回写了这边的数据,我x。被坑了。

kistliu | 园豆:138 (初学一级) | 2014-04-01 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册