更新任何表时如何更新许多数据库?

时间:2011-02-21 07:19:39

标签: 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

请帮帮我。

2 个答案:

答案 0 :(得分:1)

我猜你正在谈论一个数据库中的3个表(尽管标题似乎表明不是这样)。

您可以使用triggers来实现您的要求。 (请注意,我在链接中给了你一个tsql示例)

OR,

您可以编写一个事务过程来一次执行所有步骤(或不执行任何步骤)。

答案 1 :(得分:0)

我假设你的意思是'更新多个表',而不是多个数据库。

至少有3种方法可以做到这一点

  1. 在PurchaseDetail和SalesDetail上的数据库触发器也会更新StockDetail。
  2. 使用存储过程将插入包装到PurchaseDetail或SalesDetail中,这也会相应​​地更新StockDetail
  3. 从代码(在C#层中)执行此操作,类似于2。