TableAdapter.insert-获取ID(带有SCOPE_IDENTITY)? (SQL Server)

时间:2019-06-11 22:36:09

标签: vb.net tableadapter

我不知道如何获取使用tableadapter.insert()命令创建的记录的ID。

我阅读了一些类似问题的答案,但大多数都转向如何使用COMMANDS和ADO或存储过程。

我发现最接近的建议是将SELECT SCOPE_IDENTITY()添加到INSERT语句的末尾。

https://www.screencast.com/t/BU3F73ds

INSERT INTO [zGrid Filters and Layouts]
                     (XML, UserID, Type, Global, LastModDt, SaveName)
VALUES        (@XML,@UserID,@Type,@Global,@LastModDt,@SaveName);  

SELECT        SCOPE_IDENTITY()

但是,当我这样做时,单击“完成”时会出现“无法解析”错误。

https://www.screencast.com/t/7R5MN3cF

然后我还将Execute设置为Scalar。

https://www.screencast.com/t/w91RECeLUL2

如果我绕过该错误,则会收到运行时错误消息,提示我需要声明标量值。

https://www.screencast.com/t/RbNuizo65vu

我已经验证了我的INSERT(SQL)代码。实际上,我已经确认它确实插入时没有SELECT SCOPE_IDENTITY行。

Dim ID As Int32 =
    DataTableGridFiltersLayoutsTableAdapter1.InsertRecord(xmlString, 
    1, "F", 1, Now, "My New Block 3")

我在上面列出了结果。

为澄清起见,我想使用生成的表适配器来解决这一问题-除非答案是您不能使用表适配器来做到这一点(这似乎不太正确)。

我发现了无数文章,说有可能,但是除了tableadapter.insert行之外,没有一篇真正向您展示如何做。

感谢您的帮助。

0 个答案:

没有答案