我在数据集中有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)
答案 0 :(得分:0)
如果您使用的是数据集和DataAdapter,则不应发出所有这些语句。每个数据适配器只需要知道如何更新其记录。更新父项时,标识值将自动放入数据集中,并自动设置子记录(假设您正确设置了关系。)之后,更新子表。
阅读this SO帖子中的一些评论,那里有一些很好的代码片段。