关于数据库更新事务?

goodbegin 2004-12-24 01:22:06
我现在希望实现类似下面的功能:
有一DataSet中包含2张或2张以上表,我希望在更新DataSet中表时,如果其中一张出错则全部滚回,如:
ds1.update(ds1.tables[0]);
ds1.update(ds1.tables[1]);
ds1.update(ds1.tables[2]);
当ds1.tables[2]时出错则ds1.tables[0]也滚回到更新以前,这样的功能该如何实现,希望能有具体的代码描述,谢谢

...全文
143 点赞 收藏 9
写回复
9 条回复
mengfanpp 2004年12月29日
http://community.csdn.net/Expert/topic/3673/3673314.xml?temp=.4528009
你参考一下!
回复 点赞
goodbegin 2004年12月25日
晕,怎么没加分得地方?
回复 点赞
goodbegin 2004年12月25日
谢谢大家给出这么多帮助,圣诞节本人加分给^_^
回复 点赞
mengfanpp 2004年12月24日
合适就结贴给分!^-^
回复 点赞
mengfanpp 2004年12月24日
你参考一下!
回复 点赞
mengfanpp 2004年12月24日
SqlConnection conn = new SqlConnection(cnStr);
conn.Open();
//启用事务
SqlTransaction tran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.Transaction = tran;
try
{
cmd.CommandText = "update BeijingUser set balance = balance - 1000 where uid = '123456'";
cmd.ExecuteNonQuery();
cmd.CommandText = "update ShanghaiUser set balance = balance + 1000 where uid = '456789'";
cmd.ExecuteNonQuery();
tran.Commit();
Response.Write("<script>window.alert('事务提交成功!');</script>");
}
catch(Exection ex)
{
tran.Rollback();
Response.Write("<script>window.alert('事务提交失败,事物会滚!');</script>");
}
回复 点赞
welshem 2004年12月24日


事务对象 = 连接对象.BeginTransaction();
ds1.InsertCommand.Transaction=事务对象;
ds1.DeleteCommand.Transaction=事务对象;
ds1.UpdateCommand.Transaction=事务对象;
try {
ds1.update(ds1.tables[0]);
ds1.update(ds1.tables[1]);
ds1.update(ds1.tables[2]);
事务对象.Commit();}
catch{
事务对象.Rollback();
}
回复 点赞
rustical 2004年12月24日

try

MyTrans = objSqlCon.BeginTransaction
....

dataadapter1.update(ds1.tables[0]);
dataadapter2.update(ds1.tables[1]);
dataadapter3.update(ds1.tables[2]);

mytrans.commit
catch ex
mytrans.rollback
finally
objSqlCon.close
end try

回复 点赞
pingnt 2004年12月24日
用带事务处理的存储过程解决...
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告