如何在访问中将记录插入数据库后获取最后一个记录号

Gal*_*ali 10 c# database ms-access

我有访问自动增加字段(ID)的数据库.

我插入这样的记录(在C#中)

SQL = "insert into TermNumTbl (DeviceID,IP) values ('" + DeviceID + "','" + DeviceIP + "') ";
OleDbCommand Cmd = new OleDbCommand(SQL, Conn);
Cmd.ExecuteNonQuery();
Cmd.Dispose();
Conn.Close();
Run Code Online (Sandbox Code Playgroud)

如何获取最后一个插入号码?

我不想运行新的查询我知道在sql中有类似的东西 SELECT @@IDENTITY

但我不知道如何使用它

提前致谢

Pra*_*ana 14

更多相关信息:获取最近添加的记录的标识

Jet 4.0提供程序支持 @@Identity

string query = "Insert Into Categories (CategoryName) Values (?)";
string query2 = "Select @@Identity";
int ID;
string connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb";
using (OleDbConnection conn = new OleDbConnection(connect))
{
  using (OleDbCommand cmd = new OleDbCommand(query, conn))

  {
    cmd.Parameters.AddWithValue("", Category.Text);
    conn.Open();
    cmd.ExecuteNonQuery();
    cmd.CommandText = query2;
    ID = (int)cmd.ExecuteScalar();
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 你应该添加原始文章的链接,因为所有内容都是从它复制/粘贴的. (4认同)

Lee*_*ter 5

我猜你甚至可以写一个扩展方法OleDbConnection...

public static int GetLatestAutonumber(
    this OleDbConnection connection)
{
    using (OleDbCommand command = new OleDbCommand("SELECT @@IDENTITY;", connection))
    {
        return (int)command.ExecuteScalar();
    }
}
Run Code Online (Sandbox Code Playgroud)