我不知道如何获取使用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行之外,没有一篇真正向您展示如何做。
感谢您的帮助。