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

IDs do cadastro com Zero

Olá,

Poderia me dizer o motivo dos IDs ao se incluir os Alunos na agenda estarem todos com 0? Cadastrei mais de 1 e ambos ficaram com ID Zero na hora de exibir Select na Lista.

Segue AlunosDAO

public class AlunoDAO extends SQLiteOpenHelper {
    public AlunoDAO(Context context) {
        super(context, "Agenda", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Alunos (id INTEGER PRIRAMY KEY AUTO INCREMENT, nome TEXT NOT NULL, endereco TEXT, telefone TEXT, email TEXT, nota REAL);";

        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS Alunos";
        db.execSQL(sql);
        onCreate(db);
    }

    //INSERT SQL
    public void insere (Aluno aluno){

        SQLiteDatabase db = getWritableDatabase();

        ContentValues dados = new ContentValues();
        dados.put("nome", aluno.getNome());
        dados.put("endereco", aluno.getEndereco());
        dados.put("telefone", aluno.getTelefone());
        dados.put("email", aluno.getEmail());
        dados.put("nota", aluno.getNota());

        db.insert("Alunos", null, dados );

    }

    public List<Aluno> buscaAlunos() {

        String sql = "SELECT * FROM Alunos;";
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql, null);

        List <Aluno> alunos = new ArrayList<Aluno>();
        while  (c.moveToNext()) {

            Aluno aluno = new Aluno();
            aluno.setId(c.getLong(c.getColumnIndex("id")));
            aluno.setNome(c.getString(c.getColumnIndex("nome")));
            aluno.setEndereco(c.getString(c.getColumnIndex("endereco")));
            aluno.setTelefone(c.getString(c.getColumnIndex("telefone")));
            aluno.setEmail(c.getString(c.getColumnIndex("email")));
            aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

            alunos.add(aluno);
        }

        c.close();
        return alunos;
    }
}
3 respostas
solução!

Oi Anderson, dá uma olhadinha na criação do seu banco cara :

String sql = "CREATE TABLE Alunos (id INTEGER PRIRAMY KEY AUTO INCREMENT, nome TEXT NOT NULL, endereco TEXT, telefone TEXT, email TEXT, nota REAL);";

Você acabou digitando errado primary key, nisso ele não entende o que você quer e não consegue gerenciar o id. Outra coisa é que não é necessário passar o auto increment, pois só pelo fato de usarmos o o primary key e ser um inteiro ele vai gerenciar isso para gente.

Abraços

Ops, falha nossa, acostumado com SQL gritando erros quando algo esta errado. Obrigado mais uma vez. Quanto ao AUTO INCREMENT eu fiz para testar, já que não me atentei a sintaxe. Já removi.

Muito Grato!

não foi meu erro.. mas me ajudou muito solução.