MS SQL Server + PreparedStament

Galera estou tendo um problema sinistro aqui.

Meu código abaixo, executa sem problema. Já verifiquei via Profile no SQL Server e a operação está acontecendo corretamente.

Só que quando eu altero ou insiro um usuário, utilizando PreparadStatement não funciona, e com Statement funciona.

Só para esclarecer, o método getPreparedStatement(str) retorna um PreparedStatement.

Preciso da ajuda de vcs para conseguir enxergar o meu erro.

VLW.

      try {
         conectaBanco.getConectaBanco();
         String str;
         PreparedStatement pStm;
         if (cadastrarOuAtualizarUsuario.getId() == -1) {
            str = "insert into usuario(usuario,senha,tipo,nomecompleto) values (?,?,?,?)";
            pStm = conectaBanco.getPreparedStatement(str);
            pStm.setString(1,cadastrarOuAtualizarUsuario.getUsuario());
            pStm.setString(2,cadastrarOuAtualizarUsuario.getSenha());
            pStm.setString(3,cadastrarOuAtualizarUsuario.getTipo());
            pStm.setString(4,cadastrarOuAtualizarUsuario.getNomeCompleto());
         }
         else {
            str = "update usuario " +
                    "set usuario = ?" +
                    ",senha = ?" +
                    ",tipo = ?" +
                    ",nomecompleto = ?" +
                    " where idusuario = ?";
            pStm = conectaBanco.getPreparedStatement(str);
            pStm.setString(1,cadastrarOuAtualizarUsuario.getUsuario());
            pStm.setString(2,cadastrarOuAtualizarUsuario.getSenha());
            pStm.setString(3,cadastrarOuAtualizarUsuario.getTipo());
            pStm.setString(4,cadastrarOuAtualizarUsuario.getNomeCompleto());
            pStm.setInt(5,cadastrarOuAtualizarUsuario.getId());
         }
         pStm.executeUpdate();
         return 1;
      }
      catch (Exception e) {
         e.printStackTrace();
      } finally {
         conectaBanco.encerraConexao();
      }
      return 0;