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

O id não está autoincrementando

package br.com.anima.minhaagenda.dao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;
import java.util.List;

import br.com.anima.minhaagenda.modelo.Aluno;

/**
 * Created by tharles on 20/09/16.
 */
public class AlunoDAO extends SQLiteOpenHelper {
    public AlunoDAO(Context context) {
        super(context, "Agenda", null, 1);
    }

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

    }

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

    }
    public void insere(Aluno aluno){
        SQLiteDatabase db = getWritableDatabase();
        ContentValues dados = new ContentValues();

        dados.put("nome",aluno.getNome());
        dados.put("endereco",aluno.getEndereco());
        dados.put("site",aluno.getSite());
        dados.put("nota",aluno.getNota());

        db.insert("Aluno",null,dados);
    }
    public List<Aluno> buscaAluno(){
        String sql = ("SELECT * FROM Aluno;");
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql,null);

        List<Aluno> alunos=new ArrayList<Aluno>();
        while(c.moveToNext()){
            Aluno aluno = new Aluno();
            aluno.setNome(c.getString(c.getColumnIndex("nome")));
            aluno.setEndereco(c.getString(c.getColumnIndex("endereco")));
            aluno.setSite(c.getString(c.getColumnIndex("site")));
            aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

            alunos.add(aluno);

        }
        return alunos;
    }
}
4 respostas

Tharles, coloca teu codigo na formatação, assim fica muito difícil de entender. Qual o erro que tá aparecendo?

Desculpa, não tinha reparado na opção de formatação do código.

solução!

Tharles, o que eu vi de diferente aqui foi que ta faltando ; nessa tua query pra criar a tabela. Tem que colocar antes de fechar as "

e a segunda coisa é que ta faltando é tu setar o id do aluno quando tu ta criando ele la na busca

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

        List<Aluno> alunos = new ArrayList<>();
        while (c.moveToNext()) { //move o curso pra proxima linha
            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.setSite(c.getString(c.getColumnIndex("site")));
            aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

            alunos.add(aluno);

        }

olha a diferença aí dos dois

Obrigado Vânia :)