通过.net数据集更新调用从插入中获取标识值

时间:2010-05-06 17:33:33

标签: sql sql-server ado.net identity

以下是一些将记录插入db表的示例代码:

Dim ds As DataSet = New DataSet()
da.Fill(ds, "Shippers")

Dim RowDatos As DataRow
RowDatos = ds.Tables("Shippers").NewRow
RowDatos.Item("CompanyName") = "Serpost Peru"
RowDatos.Item("Phone") = "(511) 555-5555"
ds.Tables("Shippers").Rows.Add(RowDatos)
Dim custCB As SqlCommandBuilder = New SqlCommandBuilder(da)
da.Update(ds, "Shippers")

它在Shippers表中插入一行,ShippersID是 一个Indentity值。我的问题是如何检索 插入新行时生成的标识值 托运人表。

我已经完成了几次网络搜索,我在网上看到的来源并没有特别回答它,或者继续讨论存储过程。任何帮助,将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:2)

这是几年前的一篇优秀文章,它提供了一个完美的解释以及实现这一目标的演示hwow。包括显示该过程的屏幕截图。

MSDN article on data-adapter insert with returning the row-identity

干杯!

彼得

答案 1 :(得分:1)

您可以调用存储过程来执行插入,而不是使用SqlCommandBuilder。在存储过程中,您可以将IDENTITY值作为OUTPUT参数返回。

有关示例,请参阅http://msdn.microsoft.com/en-us/library/ks9f57t0(VS.71).aspx

答案 2 :(得分:0)

您可以使用IDENT_CURRENT()

SELECT IDENT_CURRENT("Shippers") AS CurrentIdentityShippers;