如何在.net1 中实现对(c#代码 循环插入)的事务~跪求

talentfly9 2007-01-22 09:26:55
for(int i=0;i<strAv.Length;i++)
{
insert(strAv[i]);
}
strAv为数组;insert(string str)为插入数据的方法-是一个存储过程,存储过程里有定义事务;求(如何定义事务:本次循环中的任何一次插入数据失败,则回滚整次循环的插入)《在.net 1 中实现》
小弟在这里先谢谢拉~~~~
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小y的CSDN博客 2007-01-22
  • 打赏
  • 举报
回复
SqlConnection myConn=GetConn();
   myConn.Open();

   SqlCommand myComm=new SqlCommand();
   SqlTransaction myTran;

   file://创建一个事务
   myTran=myConn.BeginTransaction();
   file://从此开始,基于该连接的数据操作都被认为是事务的一部分
   file://下面绑定连接和事务对象
   myComm.Connection=myConn;
   myComm.Transaction=myTran;

   try
   {
    file://定位到pubs数据库
    myComm.CommandText="USE pubs";
    myComm.ExecuteNonQuery();
   
    myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
    myComm.ExecuteNonQuery();

    file://下面使用创建数据库的语句制造一个错误
    myComm.CommandText="Create database testdb";
    myComm.ExecuteNonQuery();

    myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.20 WHERE title_id LIKE 'Ps%'";
    myComm.ExecuteNonQuery();

    file://提交事务
    myTran.Commit();
   }
   catch(Exception err)
   {
    myTran.Rollback();
    Console.Write("事务操作出错,已回滚。系统信息:"+err.Message);
   }
sinatly 2007-01-22
  • 打赏
  • 举报
回复
用COM+事务
Lucky_Ninja 2007-01-22
  • 打赏
  • 举报
回复
循环的事务,还是要放在循环的外面,那个存储过程不用加事务处理了,如果存储过程不改,那就象楼上说的,通过传参数,比如第一次传个0,第二次传个1……如果是0就打开事务,最后的时候commit就可以了,不过这么干稍微麻烦了些也。
feiyun0112 2007-01-22
  • 打赏
  • 举报
回复
向存储过程传个参数,不掉用内部的事务,用ado.net的事务

*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
whb147 2007-01-22
  • 打赏
  • 举报
回复
鄙视下跪,
不做回答
boxter110 2007-01-22
  • 打赏
  • 举报
回复
一个和简单的问题,就要下跪!程序员的膝盖也太软了吧!

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧