| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6070 人关注过本帖
标题:此 SqlTransaction 已完成;它再也无法使用。
只看楼主 加入收藏
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
结帖率:54.9%
收藏
已结贴  问题点数:0 回复次数:7 
此 SqlTransaction 已完成;它再也无法使用。
我用了事物, SqlConnection con = datacon.createEMail();
        con.Open();
        SqlCommand cmd = new SqlCommand();
        SqlTransaction trans;
        trans = con.BeginTransaction(IsolationLevel.ReadCommitted);
        cmd.Connection = con;
        cmd.Transaction = trans;
try
{
    //先有个Insert,向数据表中添加数据
    //然后接连有3个循环,也向数据表中循环添加数据
    //完成后,();
}
catch ()
{
    trans.Rollback();
}

但是结果,红色部分却报错说:此SqlTransaction 已完成;它再也无法使用。
我看了下,我的第一个Insert是成功了的,后面的连续三个for循环里面一个都没有成功!

请问下  是怎么回事啊?我百度了下,但是都没有得到解决!
搜索更多相关主题的帖子: 数据表 
2011-01-04 17:31
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:15 
你把catch中的 trans.Rollback();去掉就可以了。 因为前面已经();了,这个表示事物已经结束,  后面再调用当然会出现前面的问题了。  
另外不用指明trans.Rollback(),如果有异常的话,事物会自动回滚的。


出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2011-01-05 08:17
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
收藏
得分:0 
回复 2楼 wangnannan
谢谢bz哈,照你的方法我已经搞定了,我想问问   是不是只要用了事物,用了try{}catch{}来抛异常的话就不用rollBack()了吗?有错会自动回滚,是这样子的么?
2011-01-05 08:45
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:5 
直接删除回滚部分也叫搞定? 这样根本是治标不治本的,
按照流程, 执行 Commit 必须是 try 语句中的最后一句,
因此 Rollback 与 Commit 是不会都被执行的, 还是要查具体原因的.
2011-01-05 08:56
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
我的第一个Insert是成功了的,后面的连续三个for循环里面一个都没有成功!
是得看看是什么原因啊 !

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2011-01-05 09:12
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
收藏
得分:0 
现在的情况是:如果加上trans.Rollback();则每一个都不会执行成功的,现在去掉了那句,就正确了!
2011-01-05 09:26
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:0 
使用事务就是用来保证要么全部成功, 要么全部失败.
你不要这样的效果就别用事务了.
2011-01-05 09:47
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
收藏
得分:0 
回复 7楼 makebest
我就是要这样子的效果,现在也已经是那样子的效果了!
2011-01-05 09:51
快速回复:此 SqlTransaction 已完成;它再也无法使用。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016778 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved