vb.net sql последний вставленный идентификатор

Я использую 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?

Спасибо за любой совет :).

7
задан Joel Coehoorn 13 December 2010 в 01:56
поделиться