主表和明细表同时更新怎么设计好,

时间:2022-07-11 21:40:06
比如两张表:出货主表,和出货明细表.出货明细表里的单据号是从出货主表来的,他们的关系是一对多。可要如何才能同时更新这两张表呢。 

我做的界面是:上面显示主表,下面显示明细表,用户填好两部分后才去更新  
现在出现的问题是,一离开明细表的编辑状态就出错,因为主表里的还没有保存
  

哪位高人指点一下啊,越详细越好,

10 个解决方案

#1


才拔一毛啊,
UP^

#2


把更新语句写到Transaction中,先执行主表更新,在执行次表更新,
对于联系紧密的情况,建议用触发器

#3


使用事务处理(sql语句和存储过程都一样要用到)

#4


好简单啊,数据库里不是有级联更新的选项吗??设置一下就可以了

#5


很好弄的啊事务处理啊~!

#6


明细表的保存操作触发标准的控件事件,大概是叫做RaiseBubleEvent之类的。主表处理这个事件。
自己写一个继承自EvenrArguments的类,其中增加属性,子表用这个类的对象触发上述事件,通知上层控件自己的参数。

当于DataGrid的ItemCommand中的参数的实现方法。

#7


都放在一个数据集里面处理,比如说你在页面上都对数据集进行主表,明细表的各种操作,最后点击一个保存按钮时才执行对数据库更新操作(主表,子表),

#8


不建议用触发器
系统应该有业务逻辑层,这个属于业务逻辑的范畴,我觉得应该在业务逻辑层里面去实现
当然,必须在一个事务里面。

#9


在主表设置一个字段为默认值是唯一的,从表就也加一个字段来保存跟主表默认值一样就可以了

#10


很多人都说了,但我说一点

就是在用事务时,注意并发问题

#1


才拔一毛啊,
UP^

#2


把更新语句写到Transaction中,先执行主表更新,在执行次表更新,
对于联系紧密的情况,建议用触发器

#3


使用事务处理(sql语句和存储过程都一样要用到)

#4


好简单啊,数据库里不是有级联更新的选项吗??设置一下就可以了

#5


很好弄的啊事务处理啊~!

#6


明细表的保存操作触发标准的控件事件,大概是叫做RaiseBubleEvent之类的。主表处理这个事件。
自己写一个继承自EvenrArguments的类,其中增加属性,子表用这个类的对象触发上述事件,通知上层控件自己的参数。

当于DataGrid的ItemCommand中的参数的实现方法。

#7


都放在一个数据集里面处理,比如说你在页面上都对数据集进行主表,明细表的各种操作,最后点击一个保存按钮时才执行对数据库更新操作(主表,子表),

#8


不建议用触发器
系统应该有业务逻辑层,这个属于业务逻辑的范畴,我觉得应该在业务逻辑层里面去实现
当然,必须在一个事务里面。

#9


在主表设置一个字段为默认值是唯一的,从表就也加一个字段来保存跟主表默认值一样就可以了

#10


很多人都说了,但我说一点

就是在用事务时,注意并发问题