请教ASP.NET中的OleDbTransaction
由于我要多个地方经常对一张表进行多次更新操作,所以我把这更新操作封装起来,做成一个用户控件。   
 我想要多次调用更新方法,只要其中有一个更新出错时,所有的更新事务就回滚,否则一起执行,要怎么办?       
 对OleDbTransaction不是很了解,希望能讲细点       
 谢谢                     
 代码如:             
 c_update.ascx             
 public      bool      f_update(string      name,string      content)             
 {             
 try             
 {             
 cmd=conn.CreateCommand();      //conn未设置事务             
 cmd.CommandText= "update      tablename      set      content=@content      where      name=@name ";             
 cmd.Parameters.Add( "@content ",content);             
 cmd.Parameters.Add( "@name ",name);             
 cmd.ExecuteNonQuery();             
 conn.Dispose();             
 return      true;             
 }             
 catch             
 {             
 return      false;             
 }             
 }                  
 别处ASP.NET调用             
 如update.aspx             
 bool      l_return      =      true;             
 if      (c_update.f_update( "name1 ", "1 ")==false)             
 {             
 l_return      =      false;             
 }             
 if      (c_update.f_update( "name2 ", "2 ")==false)             
 {             
 l_return      =      false;             
 }             
 if      (c_update.f_update( "name3 ", "3 ")==false)             
 {             
 l_return      =      false;             
 }             
 ...(多个如此)                  
 我想要只有l_return=false时,所有的更新事务就回滚,否则一起执行,要怎么办?       
 对OleDbTransaction不是很了解,希望能讲细点       
 谢谢
------解决方案--------------------在c_update.ascx共有1个OleDbTransaction,   
 然后在c_update.ascx提供3个方法,分别为开始事务、提交、回滚。   
 然后在update.aspx调用这3个方法
------解决方案--------------------这些执行语句必须要写在同一个事务内部才行 
 http://blog.csdn.net/wszhoho/archive/2007/03/16/1530892.aspx 
 这里有两个语句的例子,应该能实现你的要求。
------解决方案--------------------至少,你可以设计一个自定义类来封装你要工作,但不要去继承扩展 UserControl