我正在使用VB.NET和Access数据库,我插入了一些值,但是接下来我需要获取最后插入的ID(自动编号),并将其插入到相关表中。
我尝试过@@IDENTITY和MAX(column),但@@IDENTITY返回零,而MAX不太可靠(有时在插入数据之前获取ID会很慢,因此获取的ID是插入的那个)。
我尝试过@@IDENTITY和MAX(column),但@@IDENTITY返回零,而MAX不太可靠(有时在插入数据之前获取ID会很慢,因此获取的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方面错了哪里?
感谢任何建议 :)