SELECT @@ IDENTITY in Access gibt immer 0 zurück

Ich habe versucht, eine Lösung für dieses Problem zu finden, aber bisher hat nichts funktioniert.

private void Insert()
    {
        string ConnectionStringAccess = Provider=Microsoft.ACE.OLEDB.12.0;Data Source=###Jet OLEDB:Database Password=###;
        string query2 = "Select @@Identity";

        int id = -1;

        string Query = "INSERT INTO tblTable (EmpNo, Name) VALUES (132, 'TestName');";

        OleDbConnection con = new OleDbConnection(ConnectionStringAccess);

        OleDbCommand cmd = new OleDbCommand(Query, con);
        try
        {
            con.Open();
            if (cmd.ExecuteNonQuery() == 1)//the insert succeded
            {
                cmd.CommandText = query2;
                id = Convert.ToInt32(cmd.ExecuteScalar());
            }
        }
        catch (Exception ex)
        {
            //log the ex
        }
        finally
        {
            con.Dispose();
            con.Close();
        }
    }

Jedes Mal, wenn ich die obige Methode verwende, erhalte ich in "id" immer den Wert 0. Was mache ich falsch? Ich habe versucht, eine andere Verbindungszeichenfolge oder eine andere Methode zum Abrufen der neuesten Kennung zu verwenden:

Provider = Microsoft.Jet.OLEDB.4.0;SCOPE_IDENTITY ()

aber nochmal nichts. Die Access-Datenbank ist 2003 oder älter (nicht genau sicher).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage