Я не могу понять, как получить идентификатор записи, созданной командой tableadapter.insert ().
Я прочитал несколько ответов на похожие вопросы, но большинство из них переключаются на то, как это сделать с помощью команд и 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.
Любая помощь приветствуется.