1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Select está retornando vazio

Olá pessoal. estou tentando criar um crud simples com android.. abri a conexão, criei a base e a tabela, consegui inserir dados nela (eu acho) mas ao tentar obter os dados inseridos o cursor está retornando vazio.

abaixo bloco de código que estou testando na minha activity

Desde já agradeço a compreensão e qualquer apoio

try{
            Prefixo prefixo = new Prefixo("Á Cobrar", 9090, "Insere prefixo 9090 antes do número");        
            PrefixoDataAccessObject dao = new PrefixoDataAccessObject(getApplicationContext());

            long insert = dao.insert(prefixo);

            Cursor cursor = dao.findAll();
            int count = cursor.getCount();
            while (cursor.moveToNext()) {
                String string = cursor.getString(cursor.getColumnIndex("label"));
            }            
        }catch(Exception e){
            e.printStackTrace();
        }

modelo de dado

public class Prefixo {
    private int id;
    private String label;
    private int numero;
    private String descricao;
    private boolean isDefault;

    public Prefixo(String label, int numero, String descricao){
        this.label = label;
        this.numero = numero;
        this.descricao = descricao;
    }
    public Prefixo(String label, int numero){
        this.label = label;
        this.numero = numero;
    }
    public Prefixo() {
        this(null,0,null);
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }    
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
    public int getNumero() {
        return numero;
    }
    public void setNumero(int numero) {
        this.numero = numero;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    public boolean isDefault() {
        return isDefault;
    }
    public void setDefault(boolean isSelected) {
        this.isDefault = isSelected;
    }


}

DataAccessObject

public class PrefixoDataAccessObject {
    SQLiteDatabase database;
    private static final String TABELA = "prefixo";

    public PrefixoDataAccessObject(Context context) {
        database = ConexaoUtil.getDatabaseFromContext(context);
        createTable();
    }

    private void createTable() {
        String sql = "CREATE TABLE IF NOT EXISTS " + TABELA + "("
                + "    id INTEGER PRIMARY KEY AUTOINCREMENT," + "    label TEXT,"
                + "    numero INTEGER," + "    descricao TEXT,"
                + "    is_selected INTEGER" + ");";

        database.execSQL(sql);
    }

    public long insert(Prefixo prefixo) {

        ContentValues values = getContentValues(prefixo);
        database.beginTransaction();
        long insert = database.insert(TABELA, null, values);
        database.endTransaction();

        return insert;

    }

    public Cursor findAll(){
        return database.rawQuery("SELECT * FROM "+TABELA+"", null);
    }

    private ContentValues getContentValues(Prefixo prefixo){
        ContentValues values = new ContentValues();
        if(prefixo.getId() != 0)
            values.put("id", prefixo.getId());

        values.put("label", prefixo.getLabel());
        values.put("numero", prefixo.getNumero());
        values.put("descricao", prefixo.getDescricao());
        values.put("is_selected", (prefixo.isDefault() ? 1 : 0));

        return values;
    }
}

Objeto que criei para criar/abrir base de dados

public class ConexaoUtil {

    public static final String DATABASE_NAME = "discador_br";

    public static SQLiteDatabase getDatabaseFromContext(Context context){
        return context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
    }
}

Mais uma vez obrigado pela atenção!

  • Qual o valor de count após count = cursor.getCount()? Se for maior que 0 é porque está salvando. Tenta colocar cursor.moveToFirst() antes do while.

    AndersonLira   23 de abr de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags android java sql ou faça a sua própria pergunta.