asp.net做的系统——操作多张表是否要用事务

小大飞 2014-02-19 10:30:02
我们做了个管理系统。三层是用动软生成的。
有的地方需要操作多张表,一直是往第一张表插入一条数据,判断返回的id是否>0
然后再if里面判断,再向第二张表插入数据,如果第二条插入语句,返回的id也>0
就提示操作成功。修改时牵扯关联表也是这么做的。还有 删除都是类似要过。

我是个新手,以前做网站一般都只,操作一张表,现在突然感觉这样可能会出问题
因为,万一第一张表成功了,但是第二张表失败了怎么办?
这里需要使用事务吗?
...全文
316 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_code_com 2014-03-06
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
这种明显用事务比较好啊 using (TransactionScope ts = new TransactionScope()) { if(A.Insert(a)&&B.Insert(b)&&C.Insert(c)) { ts.Complete(); } }
正解
LINDDYA 2014-03-06
  • 打赏
  • 举报
回复
只要在一个方法中需要同时操作两张表或以上的表就要使用事务。。。
梨花树下思考 2014-02-19
  • 打赏
  • 举报
回复
要用事务的
  • 打赏
  • 举报
回复
引用 10 楼 tong386166552 的回复:
[quote=引用 4 楼 starfd 的回复:] 这种明显用事务比较好啊 using (TransactionScope ts = new TransactionScope()) { if(A.Insert(a)&&B.Insert(b)&&C.Insert(c)) { ts.Complete(); } }
哇,写成这样就可以了? [/quote] 分布式事务啊,不用去改现有代码
小大飞 2014-02-19
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
这种明显用事务比较好啊 using (TransactionScope ts = new TransactionScope()) { if(A.Insert(a)&&B.Insert(b)&&C.Insert(c)) { ts.Complete(); } }
哇,写成这样就可以了?
voodooer 2014-02-19
  • 打赏
  • 举报
回复
需求决定一切!
小大飞 2014-02-19
  • 打赏
  • 举报
回复
引用 3 楼 qq931121347 的回复:
用事务吧··我以前用的和你们差不多 也是用事务的 完不成就回滚事务
学东西比较死,就知道银行转账用事务。 不好意思啊。 那增 删 改 的方法都要自己写吗? 我在数据库里面要不要建立主外键关系? 还是只保持逻辑上关联,数据库里不建主外键关联? 谢谢你啊!
小大飞 2014-02-19
  • 打赏
  • 举报
回复
引用 2 楼 jdcj413 的回复:
典型的事务运用环境啊
原来是这样啊,学东西比较死,就知道银行转账用事务。 那增 删 改 的方法都要自己写吗? 我数据库里面要不要建立主外键关系,还是只保持逻辑上的关联?
小大飞 2014-02-19
  • 打赏
  • 举报
回复
引用 1 楼 minhua1983 的回复:
你这个一般操作多张表,多张表没功能逻辑上关联的话,没问题。 但是多张之间有功能逻辑关系的话,那么为了安全起见,还是写进事务吧,一旦某个步骤失败了,可以回滚事务。
恩,功能上还是有关系的,因为有时会表连接。 那你的添加,修改,删除,都自己再重新些方法吗?不能用动软自动生成的了?
  • 打赏
  • 举报
回复
表之间是业务关联,保证数据的完整,就要用事务
  • 打赏
  • 举报
回复
这种明显用事务比较好啊 using (TransactionScope ts = new TransactionScope()) { if(A.Insert(a)&&B.Insert(b)&&C.Insert(c)) { ts.Complete(); } }
淡淡的活着 2014-02-19
  • 打赏
  • 举报
回复
用事务吧··我以前用的和你们差不多 也是用事务的 完不成就回滚事务
jdcj413 2014-02-19
  • 打赏
  • 举报
回复
典型的事务运用环境啊
minhua1983 2014-02-19
  • 打赏
  • 举报
回复
你这个一般操作多张表,多张表没功能逻辑上关联的话,没问题。 但是多张之间有功能逻辑关系的话,那么为了安全起见,还是写进事务吧,一旦某个步骤失败了,可以回滚事务。
淡淡的活着 2014-02-19
  • 打赏
  • 举报
回复
引用 8 楼 tong386166552 的回复:
[quote=引用 3 楼 qq931121347 的回复:] 用事务吧··我以前用的和你们差不多 也是用事务的 完不成就回滚事务
学东西比较死,就知道银行转账用事务。 不好意思啊。 那增 删 改 的方法都要自己写吗? 我在数据库里面要不要建立主外键关系? 还是只保持逻辑上关联,数据库里不建主外键关联? 谢谢你啊! [/quote]有就不用写 没有就写呗 外键关系 明显是按照需求要关系的啊

62,066

社区成员

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

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

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

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