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

ID não esta inclementando

Bom dia pessoa, o meu programa não esta trazendo o ID inclementado apenas como 0 - NOME FULANO

package br.com.pocket.pocketeducation.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.pocket.pocketeducation.modelo.Aluno;

/**
 * Created by daniel on 15/05/16.
 */
public class AlunoDAO extends SQLiteOpenHelper{

    public AlunoDAO(Context context) {
        super(context, "PocketEducation", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Alunos (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereco TEXT, email TEXT, telefone TEXT);DROP TABLE IF EXISTIS Alunos;";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTIS Alunos";
        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("email", aluno.getEmail());
        dados.put("telefone", aluno.getTelefone());
        db.insert("Alunos", null, dados);
    }

    public List<Aluno> buscaAlunos() {
        String sql = "Select * From Alunos;";
        SQLiteDatabase db = getReadableDatabase();
        Cursor cs = db.rawQuery(sql, null);

        List<Aluno> alunos = new ArrayList<Aluno>();

        while (cs.moveToNext()) {
            Aluno aluno = new Aluno();
            aluno.setId(cs.getLong(cs.getColumnIndex("id")));
            aluno.setNome(cs.getString(cs.getColumnIndex("nome")));
            aluno.setEmail(cs.getString(cs.getColumnIndex("email")));
            aluno.setTelefone(cs.getString(cs.getColumnIndex("telefone")));
            aluno.setEndereco(cs.getString(cs.getColumnIndex("endereco")));

            alunos.add(aluno);
        }
        cs.close();
        return alunos;
    }
}
5 respostas

Você poderia postar novamente o código só que entre ``` ``` ( cada bloco de código entre grupos de três acentos graves, backtics, para ficar formatado). Senão essa caixa de texto tira todas as quebras de linha deixando tudo muito difícil de ler. Dê uma olhada no botão ? formatação que tem acima de responder para mais detalhes.

```package br.com.pocket.pocketeducation.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.pocket.pocketeducation.modelo.Aluno;

/* Created by daniel on 15/05/16. */ public class AlunoDAO extends SQLiteOpenHelper{

public AlunoDAO(Context context) { super(context, "PocketEducation", null, 1); }

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

@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTIS Alunos"; 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("email", aluno.getEmail()); dados.put("telefone", aluno.getTelefone()); db.insert("Alunos", null, dados); }

public List buscaAlunos() { SQLiteDatabase db = getReadableDatabase(); Cursor cs = db.rawQuery("SELECT * FROM Alunos;", null);

List alunos = new ArrayList();

while (cs.moveToNext()) { Aluno aluno = new Aluno(); aluno.setNome(cs.getString(cs.getColumnIndex("nome"))); aluno.setEmail(cs.getString(cs.getColumnIndex("email"))); aluno.setTelefone(cs.getString(cs.getColumnIndex("telefone"))); aluno.setEndereco(cs.getString(cs.getColumnIndex("endereco")));

alunos.add(aluno); } cs.close(); return alunos; } }```

package br.com.pocket.pocketeducation.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.pocket.pocketeducation.modelo.Aluno;

/**
 * Created by daniel on 15/05/16.
 */
public class AlunoDAO extends SQLiteOpenHelper{

    public AlunoDAO(Context context) {
        super(context, "PocketEducation", null, 1);
    }

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

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTIS Alunos";
        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("email", aluno.getEmail());
        dados.put("telefone", aluno.getTelefone());
        db.insert("Alunos", null, dados);
    }

    public List<Aluno> buscaAlunos() {
        SQLiteDatabase db = getReadableDatabase();
        Cursor cs = db.rawQuery("SELECT * FROM Alunos;", null);

        List<Aluno> alunos = new ArrayList<Aluno>();

        while (cs.moveToNext()) {
            Aluno aluno = new Aluno();
            aluno.setNome(cs.getString(cs.getColumnIndex("nome")));
            aluno.setEmail(cs.getString(cs.getColumnIndex("email")));
            aluno.setTelefone(cs.getString(cs.getColumnIndex("telefone")));
            aluno.setEndereco(cs.getString(cs.getColumnIndex("endereco")));

            alunos.add(aluno);
        }
        cs.close();
        return alunos;
    }
}
solução!

Duas coisas:

  1. No seu método onUpgrade, altere a string para a seguinte:
String sql = "DROP TABLE IF EXISTS Alunos";

No código que você postou, está EXISTIS, com um I a mais.

  1. No seu método buscaAlunos, você esqueceu de popular o id do aluno. Apesar do Id estar funcionando, o seu objeto aluno não o recebe.
        while (cs.moveToNext()) {
            Aluno aluno = new Aluno();
            aluno.setId(cs.getLong(cs.getColumnIndex("id")));         
            aluno.setNome(cs.getString(cs.getColumnIndex("nome")));
            aluno.setEmail(cs.getString(cs.getColumnIndex("email")));
            aluno.setTelefone(cs.getString(cs.getColumnIndex("telefone")));
            aluno.setEndereco(cs.getString(cs.getColumnIndex("endereco")));

            alunos.add(aluno);
        }

Opa funcionou valeu pessoal!