我将 VB.NET 与 Access 数据库一起使用,我插入了值,但随后我需要获取最后插入的 ID(自动编号)并将其插入到相关表中。
我已经尝试过@@IDENTITY 和 MAX(column) 但@@IDENTITY 返回零并且 MAX 不是很可靠(有时插入数据很慢,所以在插入之前获取 ID)。
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 出了什么问题?
感谢您的任何建议:)。