如何为一对多关系表编写insert语句以插入dataTable

时间:2013-07-23 05:23:38

标签: c# sql-server tsql

我在数据集中有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)

1 个答案:

答案 0 :(得分:0)

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

阅读this SO帖子中的一些评论,那里有一些很好的代码片段。