Return Null even with registration in Sqlite database

Asked

Viewed 139 times

0

I’m having a problem making this query where I’m looking for the product code and service code. If I make a select without WHERE I get results but doing this way my Product object always returns null what I may be missing in this query.

   @Override
    public ProdutoAtendimento  pesquisarPorProdutoEAtendimento(DatabaseHelper db,int codigoProduto,int codigoAtendimento) {
        ProdutoAtendimento produto = new ProdutoAtendimento();
        String sql = "SELECT * FROM " + IDatabaseHelper.TABLE_PRODUTO_ATENDIMENTO +
                " WHERE " + IDatabaseHelper.COL_ID_PRODUTO_ATENDIMENTO + " = "+codigoProduto+
                " AND "  + IDatabaseHelper.COL_ID_ATENDIMENTO + " = "+codigoAtendimento;
                ;
    //    String whereArgs[] = new String[]{String.valueOf(codigo)};

        //Definir MODO de LEITURA nas TABELAS
        this.db = db.getReadableDatabase();

        //Criar CURSOR para os resultados
        Cursor c = this.db.rawQuery(sql, null);

        // Se retornou resultados
        if (c.moveToFirst()){
            //Adicionar resultados na lista
            do{
                produto.setIdAtendimento(c.getInt(c.getColumnIndex(IDatabaseHelper.COL_ID_ATENDIMENTO)));
                produto.setId(c.getInt(c.getColumnIndex(IDatabaseHelper.COL_ID_PRODUTO_ATENDIMENTO)));
                produto.setDescricao(c.getString(c.getColumnIndex(IDatabaseHelper.COL_DESCRICAO_PRODUTO_ATENDIMENTO)));
                produto.setSerial(c.getString(c.getColumnIndex(IDatabaseHelper.COL_SERIAL_PRODUTO_ATENDIMENTO)));
                produto.setQuantidade(c.getInt(c.getColumnIndex(IDatabaseHelper.COL_QUANTIDADE_PRODUTO_ATENDIMENTO)));
                produto.setUnidade(c.getString(c.getColumnIndex(IDatabaseHelper.COL_UNIDADE_PRODUTO_ATENDIMENTO)));
                produto.setControleUnidade(c.getString(c.getColumnIndex(IDatabaseHelper.COL_CONTOLA_UNIDADE_PRODUTO_ATENDIMENTO)));
            }while(c.moveToNext());
        }

        //Fechar o cursor
        if (!c.isClosed()){
            c.close();
        }

        this.db.close();
        return produto;
    }
  • 1

    Tried using db.query() to see if it returns any data?

  • @Grupocdsinformática did not try. but I will do a test now.

  • 1

    Blz. Just remember to change the query to pass the Where parameters with "?" and also to pass the parameters in the same order as Where. Anything a doc from Sqlitedatabase can give a help.

  • @Grupocdsinformática, could you give me an example?

  • 1

    Take a look at that link of Soen, it has described right how to do.

  • @Grupocdsinformática made a test here, with my code even if I pass only one parameter in SQL it returns me. now with both no.

  • I managed to solve, thanks for the tip.

Show 2 more comments
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.