如何在特定列上添加?

时间:2017-11-06 09:08:17

标签: android sqlite android-sqlite

很抱歉,如果之前询问了相关问题,但我找不到它的解决方案。实际上我正在从SQLite检索数据,并在每个用户输入的“计数”列上添加添加当前加上前一个输入。一切都很好。我试图在Textview的{​​{1}}中显示从数据库中检索到的计数。当我做SUM(计数)listview时,我可以看到计数,但问题是FROM TABLE_NAME只显示列表中的一个项目。它只是改变第一项或覆盖。我怎么解决这个问题。请帮忙。显示以下代码段:

这是我从listview检索数据的公共函数。

SQLite

2 个答案:

答案 0 :(得分:0)

你必须使用两个不同的查询

1)返回所有产品的清单

public List<Product> getAllProduct() {
    List<Product> products = new ArrayList<Product>();
    Cursor cursor = database.rawQuery("SELECT * From shirts ORDER BY id DESC  ", null);
    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        int id = cursor.getInt(0);
        String title = cursor.getString(1);
        String price = cursor.getString(2);
        String quantity = cursor.getString(3);
        int count = cursor.getInt(4);

        products.add(new Product(id, title, price, quantity, count));
        cursor.moveToNext();
    }
    cursor.close();
    return products;
}

2)购物车中的物品数量

public int getTotalItem() {
    int totalItem=0;
    Cursor cursor = database.rawQuery("SELECT count(*) as totalItem  From shirts ORDER BY id DESC  ", null);
    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        int id = cursor.getInt(0);
         cursor.moveToNext();
    }
    cursor.close();
    return totalItem;
}

答案 1 :(得分:0)

@OmInfowareDevelopers这是我想要实现的答案。您没有将游标值放在int变量中,这就是它始终返回null的原因。嗯,我真的很感谢你的时间,并向我提出了我想要的确切答案。

public int getTotalItem() {
    int totalItem = 0;
    Cursor cursor = database.rawQuery("SELECT SUM(count) From shirts ORDER BY id DESC  ", null);
    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        totalItem = cursor.getInt(0);
        cursor.moveToNext();
    }
    cursor.close();
    return totalItem;
}