这个事务回滚怎么有问题 怎么修改呢

问题描述

if(ds.Tables[0].Rows.Count>0){stringsqlt="";stringconnstr="server=10.88.1.10;database=car;uid=sa;pwd=;";SqlConnectionconn=newSqlConnection(connstr);conn.Open();intcount=ds.Tables[0].Rows.Count;SqlTransactiontransaction=null;transaction=conn.BeginTransaction();for(inti=0;i<count;i++){string料号,名称,图号,规格,单位;料号=ds.Tables[0].Rows[i]["料号"].ToString();图号=ds.Tables[0].Rows[i]["图号"].ToString();名称=ds.Tables[0].Rows[i]["名称"].ToString();规格=ds.Tables[0].Rows[i]["规格"].ToString();单位=ds.Tables[0].Rows[i]["单位"].ToString();if(料号!=""&&名称!="")sqlt="insertintoGAdesno(料号,图号,名称,规格,单位)values('"+料号+"','"+图号+"','"+名称+"','"+规格+"','"+单位+"')";SqlCommandmycommand1=newSqlCommand(sqlt,conn);try{mycommand1.ExecuteNonQuery();//所有操作完成,提交transaction.Commit();dbclass.msgbox("数据导入成功!共导入"+count.ToString()+"条数据!","提示",0);conn.Close();oda.Dispose();}catch(Exceptionex){//先回滚transaction.Rollback();//下面进行异常处理//}finally{//关闭数据库连接conn.Close();}}}}

解决方案

解决方案二:
if(ds.Tables[0].Rows.Count>0){stringsqlt="";stringconnstr="server=10.88.1.10;database=car;uid=sa;pwd=;";SqlConnectionconn=newSqlConnection(connstr);conn.Open();intcount=ds.Tables[0].Rows.Count;SqlTransactiontransaction=null;transaction=conn.BeginTransaction();try{for(inti=0;i<count;i++){string料号,名称,图号,规格,单位;料号=ds.Tables[0].Rows[i]["料号"].ToString();图号=ds.Tables[0].Rows[i]["图号"].ToString();名称=ds.Tables[0].Rows[i]["名称"].ToString();规格=ds.Tables[0].Rows[i]["规格"].ToString();单位=ds.Tables[0].Rows[i]["单位"].ToString();if(料号!=""&&名称!="")sqlt="insertintoGAdesno(料号,图号,名称,规格,单位)values('"+料号+"','"+图号+"','"+名称+"','"+规格+"','"+单位+"')";SqlCommandmycommand1=newSqlCommand(sqlt,conn);mycommand1.Transaction=transaction;mycommand1.ExecuteNonQuery();//所有操作完成,提交}transaction.Commit();dbclass.msgbox("数据导入成功!共导入"+count.ToString()+"条数据!","提示",0);conn.Close();oda.Dispose();}catch(Exceptionex){//先回滚transaction.Rollback();//下面进行异常处理//}finally{//关闭数据库连接conn.Close();}
解决方案三:
if(ds.Tables[0].Rows.Count>0){stringsqlt="";stringconnstr="server=10.88.1.10;database=car;uid=sa;pwd=;";SqlConnectionconn=newSqlConnection(connstr);conn.Open();intcount=ds.Tables[0].Rows.Count;SqlTransactiontransaction=null;transaction=conn.BeginTransaction();try{for(inti=0;i<count;i++){string料号,名称,图号,规格,单位;料号=ds.Tables[0].Rows[i]["料号"].ToString();图号=ds.Tables[0].Rows[i]["图号"].ToString();名称=ds.Tables[0].Rows[i]["名称"].ToString();规格=ds.Tables[0].Rows[i]["规格"].ToString();单位=ds.Tables[0].Rows[i]["单位"].ToString();if(料号!=""&&名称!="")sqlt="insertintoGAdesno(料号,图号,名称,规格,单位)values('"+料号+"','"+图号+"','"+名称+"','"+规格+"','"+单位+"')";SqlCommandmycommand1=newSqlCommand(sqlt,conn);mycommand1.Transaction=transaction;mycommand1.ExecuteNonQuery();//所有操作完成,提交}transaction.Commit();dbclass.msgbox("数据导入成功!共导入"+count.ToString()+"条数据!","提示",0);conn.Close();oda.Dispose();}catch(Exceptionex){//先回滚transaction.Rollback();//下面进行异常处理//}finally{//关闭数据库连接conn.Close();}
解决方案四:
if(ds.Tables[0].Rows.Count>0){stringsqlt="";stringconnstr="server=10.88.1.10;database=car;uid=sa;pwd=;";SqlConnectionconn=newSqlConnection(connstr);conn.Open();intcount=ds.Tables[0].Rows.Count;SqlTransactiontransaction=null;transaction=conn.BeginTransaction();try{for(inti=0;i<count;i++){string料号,名称,图号,规格,单位;料号=ds.Tables[0].Rows[i]["料号"].ToString();图号=ds.Tables[0].Rows[i]["图号"].ToString();名称=ds.Tables[0].Rows[i]["名称"].ToString();规格=ds.Tables[0].Rows[i]["规格"].ToString();单位=ds.Tables[0].Rows[i]["单位"].ToString();if(料号!=""&&名称!="")sqlt="insertintoGAdesno(料号,图号,名称,规格,单位)values('"+料号+"','"+图号+"','"+名称+"','"+规格+"','"+单位+"')";SqlCommandmycommand1=newSqlCommand(sqlt,conn);mycommand1.Transaction=transaction;mycommand1.ExecuteNonQuery();//所有操作完成,提交}transaction.Commit();dbclass.msgbox("数据导入成功!共导入"+count.ToString()+"条数据!","提示",0);conn.Close();oda.Dispose();}catch(Exceptionex){//先回滚transaction.Rollback();//下面进行异常处理//}finally{//关闭数据库连接conn.Close();}
解决方案五:
using(SqlConnectionconnection=newSqlConnection(connectionString)){connection.Open();SqlCommandcommand=connection.CreateCommand();SqlTransactiontransaction;transaction=connection.BeginTransaction("SampleTransaction");command.Connection=connection;command.Transaction=transaction;try{command.CommandText="";command.ExecuteNonQuery();transaction.Commit();}catch(Exceptionex){try{transaction.Rollback();}catch(Exceptionex2){}}

时间: 2024-09-20 10:53:07

这个事务回滚怎么有问题 怎么修改呢的相关文章

java-银行交易如何实现类似事务回滚

问题描述 银行交易如何实现类似事务回滚 在做的项目中,有一个基金产品的购买交易,里面的大致逻辑是 先判断用户是否基金开户,未开户发交易开基金账户>是否签约***(具体什么省略) 未签约发交易签约>最后一步发交易购买该款基金产品. 但现在的问题是购买失败则一个java类里的前两个交易都给做了现在,想不出什么类似操作数据库的事务回滚机制才控制这段交易,该交易在一个页面完成.望经验丰富的朋友给个思路,谢谢! 解决方案 你可以使用应用层的事务框架,或者自己实现一个简单的:先将操作放入临时的表中,然后一

sql-求助:网络中断时 ASP RollbackTrans事务回滚不完全

问题描述 求助:网络中断时 ASP RollbackTrans事务回滚不完全 当网络中断 没有完全运行所有代码时 member 表会回滚 但是 shenhe表不回滚 SQL数据库 已经出现了 shenhe表有记录 member没有对应的记录 <%conn.BeginTrans call checkPost() psw=lostsql(trim(request.Form(""psw""))) repsw=lostsql(trim(request.Form(&qu

PHP pdo 事务回滚代码实例

PHP pdo 事务回滚代码实例 $this->beginTransaction(); $this->exec('update people set age=2'); //$step1 = mysql教程_error();//你的类里,改成如果执行sql错误,获取错误代码,相应的函数 $this->exec('INSERT INTO course (course,num) VALUES ("数学",100)'); //$step2 = mysql_error(); i

PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)_php技巧

本文实例讲述了PHP入门教程之使用Mysqli操作数据库的方法.分享给大家供大家参考,具体如下: Demo1.php <?php //使用 mysqli 对象操作数据库 //创建 mysqli 对象(资源句柄) $_mysqli = new mysqli(); //连接数据库 1.主机名(ip) 2.账户 3.密码 4.数据库 //mysqli_connect 函数 == $_mysqli -> connect(); $_mysqli -> connect('localhost','ro

spring事务回滚只能配在service层吗。为什么我想在Test中添加事务不能进行回滚呢

问题描述 spring事务回滚只能配在service层吗.为什么我想在Test中添加事务不能进行回滚呢 <tx:advice id="txAdvice2" transaction-manager="txManager"> <tx:attributes> <tx:method name="inserttwo*" propagation="REQUIRED"/> </tx:attribut

spring的事务回滚策略为自定义异常

问题描述 spring的事务回滚策略为自定义异常 我配置的回滚策略如下 BusinessException是个自定义异常,继承了RuntimeException,按道理来说spring应该是捕捉到这个异常类或这个异常类的子类才进行的回滚,但是为什么抛出RuntimeException以后事务还是会回滚? 解决方案 http://shaohan126448.iteye.com/blog/1536879 解决方案二: spring异常与事务回滚Spring异常抛出触发事务回滚策略异常类型 &&

spring 注解事务回滚问题

问题描述 spring 注解事务回滚问题 ,错误异常是数据库表主键不可重复,控制台报了违反了表的约术,但是SPring却不回滚..项目能正常运行.用的是注解. 解决方案 看看这里http://my.oschina.net/xuqiang/blog/97633

插入多条数据回滚-hibernate 手动控制事务回滚失败

问题描述 hibernate 手动控制事务回滚失败 spring配置: 5201005100 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" />

求助...Membership 里面如何事务回滚?

问题描述 例如我在同时创建用户和往另外一张表里增加的内容时候,如果创建用户成功了但往另外一张表里面增加内容时出错了,在这样的情况下,我就需要用到事务回滚.MembershipCreateStatusstatus;MembershipUsernewUser=Membership.CreateUser(tb_UserName.Text,tb_Pwd.Text,FinanceLogic.Common.Instance().StrFilter(tb_Email.Text),FinanceLogic.Co