SELECT @@ IDENTITY в Access всегда возвращает 0

Я пытался найти решение этой проблемы, но пока ничего не получалось.

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();
        }
    }

Каждый раз, когда я использую описанный выше метод, я всегда получаю 0 в «id». Что я делаю неправильно? Я попытался использовать другую строку подключения или другой способ получить последний идентификатор:

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

но опять ничего. Access db 2003 или старше (точно не уверен).

Ответы на вопрос(4)

Ваш ответ на вопрос