0

当我单击保存按钮时,我在数据集中有 3 个表,我想使用数据适配器将这些表添加到数据库表中,所有这 3 个表的主键都是 sql 生成的自动编号。

关系 Invoice、InvoiceProduct、InvoiceProductExp 表是: InvoiceNo 有很多 InvoiceProductNo InvoiceProductNo 有很多 InvoiceProductExpNo

以下代码无法解决这些关系

DECLARE @InvoiceNo INT
DECLARE @InvoiceProductNo INT
INSERT INTO Invoice ([Date])
VALUES (GETDATE())
SELECT @InvoiceNo = SCOPE_IDENTITY()
INSERT INTO InvoiceProduct([InvoiceNo])
VALUES (@InvoiceNo)
SELECT @InvoiceProductNo = SCOPE_IDENTITY() 
INSERT INTO InvoiceProductExp ([InvoiceProductNo], [InvoiceNo])
VALUES (@InvoiceProductNo, @InvoiceNo)
4

1 回答 1

0

如果您使用的是 Dataset 和 DataAdapter,则不应发出所有这些语句。每个数据适配器只需要知道如何更新它的记录。当您更新父项时,标识值将自动放入您的数据集中,并且将自动设置子记录(假设您正确设置了关系。)之后,您更新子表。

阅读这个SO 线程中的一些评论,那里有一些很好的代码片段。

于 2013-07-23T13:56:07.130 回答