更新表时如何更新相关表?

时间:2011-02-21 10:38:48

标签: c# .net-3.5

我正在创建一个基于医疗库存的C#Windows应用程序。在这个应用程序中,我主要有三种形式,如PurchaseDetail,SalesDetail和StockDetail。

现在我想要一个功能,如果我在PurchaseDetail或SalesDetail中插入或修改记录,也应修改StockDetail中的数据。(例如,如果我在PurchaseDetail中插入一些药品,那么StockDetail中的数量应该也进行了修改,与SalesDetail相同)

PurchaseDetail中的列:Id(主键和自动增量int),BatchNumber,MedicineName,ManufacturingDate,ExpiryDate,Rate,MRP,Tax,Discount,Quantity

SalesDetail中的列:Id(PrimaryKey和自动增量int),BillNumber,CustomerName,BatchNumber,Quantity,Rate,SalesDate

StockDetail中的列:Id(主键和自动增量int),ProductId,ProductName,OpeningStock,ClosingStock,PurchaseQty,DispenseQty,PurchaseReturn,DispenseReturn

请帮帮我。

4 个答案:

答案 0 :(得分:0)

编写一个封装所需操作的存储过程。然后调用该程序。

答案 1 :(得分:0)

我想说触发器是最好的解决方案,因为您基本上需要审核功能。

答案 2 :(得分:0)

根据您的业务逻辑,我强烈建议您在添加或更改其他值时更改数量时避免此类行为。
保存所有交易,无论是增加还是减去总数量(正数或负数),并将所有交易相加以获得总数。

答案 3 :(得分:0)

一般情况下,我会避开触发器 - 如果没有其他的话,他们很难尝试调试。

使用SRO(单一对象责任)的设计原则我认为更好的设计是股票管理占用了您班级的部分业务逻辑,这样确认购买应该明确调用库存管理类,然后调用数据库更新该表。

显然,这应该在交易中完成,以确保在订单被锁定时股票没有被另一个用户完全耗尽。