Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

O id não esta sendo auto incrementado

Ola gente, olha minha aplicação está com um erro, não esta gerando o id, depois quando vou buscar os dados do banco, todos os ids estão como 0.

@Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Alunos(id INTENGER PRIMARY KEY, nome TEXT NOT NULL, endereco TEXT, telefone TEXT, site TEXT, nota REAL)";
        db.execSQL(sql);
    }

public boolean inserir(Aluno aluno) {
        try {
            SQLiteDatabase database = getWritableDatabase();

            ContentValues values = new ContentValues();
            values.put("nome", aluno.getNome());
            values.put("endereco", aluno.getEndereco());
            values.put("telefone", aluno.getTelefone());
            values.put("site", aluno.getSite());
            values.put("nota", aluno.getNota());

            database.insert("Alunos", null, values);
            return true;
        } catch (Exception e) {

        }
        return false;
    }


public List<Aluno> listaDeAlunos() {

        String sql = "SELECT * FROM Alunos";
        SQLiteDatabase database = getReadableDatabase();

        Cursor cursor = database.rawQuery(sql, null);
        List<Aluno> alunos = new ArrayList<Aluno>();

        preencheListaDeAlunos(cursor, alunos);

        cursor.close();

        return alunos;
    }

    private void preencheListaDeAlunos(Cursor cursor, List<Aluno> alunos) {
        while (cursor.moveToNext()) {
            Aluno aluno = new Aluno();

            aluno.setId(cursor.getLong(cursor.getColumnIndex("id")));
            aluno.setNome(cursor.getString(cursor.getColumnIndex("nome")));
            aluno.setEndereco(cursor.getString(cursor.getColumnIndex("endereco")));
            aluno.setTelefone(cursor.getString(cursor.getColumnIndex("telefone")));
            aluno.setSite(cursor.getString(cursor.getColumnIndex("site")));
            aluno.setNota(cursor.getDouble(cursor.getColumnIndex("nota")));

            alunos.add(aluno);
        }
    }
4 respostas

Opa, tudo bem? Também estava com esse problema e resolvi ele modificando o tipo do Id de Long para Int. Creio que se fizer isso também irá resolver o seu problema.

Abraços!

Ola Bruno, eu fiz o que você me recomendou, mais o problema permace.

após

CREATE TABLE Alunos(id INTENGER PRIMARY KEY ...

adicione "autoincrement", aqui com migo só funcionou assim.

solução!

Olha Wolney, isso ai eu já tinha tentando, mais também não deu certo, pra passar esse problema, gereil o id pelo proprio systema.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software