Я использую VB.NET с базой данных Access, я вставляю значения, но затем мне нужно получить последний вставленный идентификатор (автоматический номер) и вставьте это в связанную таблицу.
Я пробовал @@ IDENTITY и MAX (столбец), но @@ IDENTITY возвращает ноль, а MAX не очень надежен (иногда медленно вставлять данные, поэтому получите идентификатор перед вставленным) .
Dim insertSql = datalayer.getDataTable((String.Format("INSERT INTO users (username) VALUES ({0})", username)))
Dim newID = datalayer.getDataTable((String.Format("SELECT @@IDENTITY FROM users")))
Dim con As OleDbConnection = getConnection()
con.Open()
Dim sqlCommand As OleDbCommand = New OleDbCommand(String.Format(insertSql), con)
sqlCommand.ExecuteNonQuery()
Это делается двумя функциями, поэтому приведенный выше код может сбивать с толку, но он взят только из двух функций. Выполняются два оператора, но я только что показал один из выполняемых в качестве примера.
Есть ли альтернатива @@ IDENTITY и MAX, так как я, кажется, не понимаю, как обстоят дела с @@ IDENTITY?
Спасибо за любой совет :).