请教ASP.NET中的OleDbTransaction

pippe 2007-08-14 11:23:58
由于我要多个地方经常对一张表进行多次更新操作,所以我把这更新操作封装起来,做成一个用户控件。

我想要多次调用更新方法,只要其中有一个更新出错时,所有的更新事务就回滚,否则一起执行,要怎么办?
对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不是很了解,希望能讲细点
谢谢
...全文
278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pippe 2007-08-14
  • 打赏
  • 举报
回复
谢谢大家
分数分了

PS:Jinglecat(晓风残月
能否告知下选择UC和CLASS处理数据有什么区别?
谢谢
刚学ASP.NET不久,CLASS会写但不会调用
-。-
usxue 2007-08-14
  • 打赏
  • 举报
回复

OleDbTransaction sqlTran = conn.BeginTransaction();
cmd.Transaction = sqlTran;
try {
...........
sqlTran = conn.BeginTransaction();
cmd.Transaction = sqlTran;
..............
cmd.ExecuteNonQuery();
sqlTran.commit();
}
catch(Exception exp) {
sqlTran.Rollback();
}
finally{
conn.close();
}
Jinglecat 2007-08-14
  • 打赏
  • 举报
回复
至少,你可以设计一个自定义类来封装你要工作,但不要去继承扩展 UserControl
Jinglecat 2007-08-14
  • 打赏
  • 举报
回复
UserControl 是 UI 组件, 选择 UC 来进行数据处理,是不恰当的
wszhoho 2007-08-14
  • 打赏
  • 举报
回复
这些执行语句必须要写在同一个事务内部才行
http://blog.csdn.net/wszhoho/archive/2007/03/16/1530892.aspx
这里有两个语句的例子,应该能实现你的要求。
BearRui 2007-08-14
  • 打赏
  • 举报
回复
在c_update.ascx共有1个OleDbTransaction,

然后在c_update.ascx提供3个方法,分别为开始事务、提交、回滚。

然后在update.aspx调用这3个方法
zhchg6666 2007-08-14
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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