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

Erro com o SQLite (acho que nao está criando o banco)

está mostrando uma mensagem de erro, quando vou inserir no banco as informações, acredito que o banco ainda nao foi criado pelo erro, mais fiz tudo como mostra o curso.. estou executando no próprio celular (4.1.2 API 16).

Erro : no sush Table: Alunos (cod erro 1)

package brcom.caelum.cadastro.dao;

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

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import brcom.caelum.cadastro.modelo.Aluno;

public class AlunoDAO extends SQLiteOpenHelper{

    private static final String DATABASE = "CadastroCaleum";
    private static final String TABELA = "Alunos";
    private static final int VERSAO = 1;
    private Context contexto;

    public AlunoDAO(Context context) {
        super(context, DATABASE, null, VERSAO);
        contexto = context;
    }

    public void insere(Aluno aluno) {
        ContentValues values = new ContentValues();

        values.put("nome", aluno.getNome());
        values.put("telefone", aluno.getTelefone());
        values.put("endereco", aluno.getEndereco());
        values.put("site", aluno.getSite());
        values.put("nota", aluno.getNota());
        values.put("foto", aluno.getFoto());

        getWritableDatabase().insert(TABELA, null, values);
        getWritableDatabase().close();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try {
             String ddl = "CREATE TABLE " + TABELA + " (id INTEGER PRIMARY KEY, " +
                     " nome TEXT UNIQUE NOT NULL, telefone TEXT, endereco TEXT, " +
                     " site TEXT, nota REAL, foto TEXT);";

             db.execSQL(ddl);
        } catch (Exception e) {

        }

    }

    @Override
    public void onUpgrade(SQLiteDatabase bd, int arg1, int arg2) {
        String sql = "DROP TABLE IF EXISTS " + TABELA;
        bd.execSQL(sql);
        onCreate(bd);
    }


    public List<Aluno> getLista() {
        ArrayList<Aluno> listaAluno = new ArrayList<Aluno>();
        try {
            String[] colunas = { "id", "nome", "site", "telefone", "endereco", "foto", "nota" };
            // 0 1 2 3 4 5 6
            Cursor cursor = getWritableDatabase().query("Alunos", colunas,
                    null, null, null, null, null);        

            while (cursor.moveToNext()) {
                Aluno aluno = new Aluno();
                aluno.setId((int) cursor.getLong(0));
                aluno.setNome(cursor.getString(1));
                aluno.setSite(cursor.getString(2));
                aluno.setTelefone(cursor.getString(3));
                aluno.setEndereco(cursor.getString(4));
                aluno.setFoto(cursor.getString(5));
                aluno.setNota(cursor.getDouble(6));
                listaAluno.add(aluno);
            }
        } catch (Exception e) {

        }

        return listaAluno;
    }
}
2 respostas
solução!

Como ta seu FormularioActivity ?

Tenta mudar a versão do banco e verifica se ele cria o banco.

cara funcionou, brigadão :)