现有两个表
一个是订单总表  一个是订单明细表
其字段分别为:
总表
单据号   供货单位  经办人  日期
明细表
单据号 商品编号 商品名称  经办人 日期我的问题是在三层架构里面,要如何来一次性提交这些数据保存到数据库里面,求高手提供一个解决方案或者是一个设计方案,谢谢了

解决方案 »

  1.   

    先保存总单,保存后,得到总单id号( @@IDENTITY),然后保存明细单
      

  2.   

    select * from 总表 as A,明细表 as B where A.单据号=B.单据号
      

  3.   

    实体类: OrderInfo对应 总表 , OrderDetailInfo对应 明细表
    OrderInfo包含OrderDetailInfo列表(可以是泛型,集合类)
    对OrderInfo执行添加操作,使用一个事务,把OrderInfo和OrderDetailInfo中的详细数据一次写入到数据库里
      

  4.   

    我不知道你是问数据库方面还是asp.net方面,我回答数据库操作吧
    写个传储过程,传参数进去。将添加语句放到事务中。
    先添加总表,添加完毕
    用@@IDENTITY 或 scope_identity() 获取刚添加进去数据的ID,
    再添加到子表里面去。
    删改亦类似~
      

  5.   

    你可以分别放到dataset中,再一次提交, dataset可以是多个表。
      

  6.   

    1 方式(把整个过程当成一个业务过程):
    在中间一层上创建事务保证父子操作的一致性. 
    在数据访问层分别执行父操作和子操作.2 方式(把这个过程作为原子操作)
    在中间一层进行数据逻辑有效性验证(而不是输入合法性,这应该在UI上验证输入合法)
    在数据访问层通过一个SQL事务提交.3 方式(LINQ和ORM)
    中间一层操作实体,先验证有效性,然后对实体操作
    底下把操作映射到数据库
      

  7.   

    在Enterprise library 中可以把对多次操作封装成一个事务的形式,建议是封装成事务,提交两个表的操作,先操作主表,然后操作明细