仅返回SQLite Select语句中的Last值

卢比

在这里,我试图从SQLite中的表中获取所有数据。但是每次它返回我时仅最后一行两次(我的表仅包含两行)。

e.g
---------------------+
| Id| name | mobile  |                  
|--------------------|
|1  | abc  | 123456  |
|--------------------|
|2  | xyz  | 789654  |
+--------------------+

我的代码返回此:

01-11 00:14:59.291: D/Result:(27629): TID 12274, Name: Tablets , Image: [B@4275d578
01-11 00:14:59.291: D/Result:(27629): TID 12274, Name: Tablets , Image: [B@4275d578

在这里,我粘贴我的查询代码:

public List<ProductCategoryDatabaseRetrieve> getProductCategoryData() {
    List<ProductCategoryDatabaseRetrieve> productCategoryDatabaseRetrieve = new ArrayList<ProductCategoryDatabaseRetrieve>();
    ProductCategoryDatabaseRetrieve prodCatDB = new ProductCategoryDatabaseRetrieve();
    SQLiteDatabase sqliteDB = dbHandler.getWritableDatabase();
    String[] columns = { DatabaseHandler._TID,
            DatabaseHandler.TID,
            DatabaseHandler.PRODUCT_CATEGORY_NAME,
            DatabaseHandler.PRODUCT_CATEGORY_IMAGE };
    Cursor cursor = sqliteDB.query(DatabaseHandler.PRODUCT_CATEGORY_TABLE,
            columns, null, null, null, null, null);
    if (cursor.getCount() > 0 && cursor !=null) {
        while (cursor.moveToNext()) {
            prodCatDB.set_tid(cursor.getInt(cursor.getColumnIndex(DatabaseHandler._TID)));
            prodCatDB.setTid(String.valueOf(cursor.getInt(cursor
                    .getColumnIndex(DatabaseHandler.TID))));
            prodCatDB.setProductCategoryName(cursor.getString(cursor
                    .getColumnIndex(DatabaseHandler.PRODUCT_CATEGORY_NAME)));
            prodCatDB.setProductCategoryImage(cursor.getBlob(cursor
                    .getColumnIndex(DatabaseHandler.PRODUCT_CATEGORY_IMAGE)));
            productCategoryDatabaseRetrieve.add(prodCatDB);
    }
    } 
    dbHandler.close();
    return productCategoryDatabaseRetrieve;
}

非常感谢您的考虑。

AxiomaticNexus

这是因为您要ProductCategoryDatabaseRetrieve prodCatDB = new ProductCategoryDatabaseRetrieve();while循环外部实例化一次,然后用每次循环迭代替换它的属性值。像这样

移动ProductCategoryDatabaseRetrieve prodCatDB = new ProductCategoryDatabaseRetrieve();while循环内部

while (cursor.moveToNext()) {
        ProductCategoryDatabaseRetrieve prodCatDB = new ProductCategoryDatabaseRetrieve();//Instantiate here with each iteration.
        prodCatDB.set_tid(cursor.getInt(cursor.getColumnIndex(DatabaseHandler._TID)));
        prodCatDB.setTid(String.valueOf(cursor.getInt(cursor
                .getColumnIndex(DatabaseHandler.TID))));
        prodCatDB.setProductCategoryName(cursor.getString(cursor
                .getColumnIndex(DatabaseHandler.PRODUCT_CATEGORY_NAME)));
        prodCatDB.setProductCategoryImage(cursor.getBlob(cursor
                .getColumnIndex(DatabaseHandler.PRODUCT_CATEGORY_IMAGE)));
        productCategoryDatabaseRetrieve.add(prodCatDB);
}

另外,在您的if陈述中,cursor != null是没有用的。游标永远不会为null,即使它cursor.getCount()会在cursor != null到达之前引发null指针异常删除cursor != null,您不需要它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅返回SQLite Select语句中的最后一个值

来自分类Dev

SQL查询仅返回SELECT语句中第一列的值

来自分类Dev

SQLite Android rawQuery仅返回准确值

来自分类Dev

如何设置列以在select语句中返回值

来自分类Dev

在select语句中使用表值函数返回值

来自分类Dev

在select语句中使用表值函数返回值

来自分类Dev

如何计算重复的行数,但仅返回SQLite中的distinct的值?

来自分类Dev

SQLite SELECT语句中的可选参数

来自分类Dev

SQLite SELECT语句中的可选参数

来自分类Dev

在case语句中返回布尔值

来自分类Dev

从executemany语句中获取“返回”值

来自分类Dev

PHP在条件语句中返回cookie的值

来自分类Dev

从executemany语句中获取“返回”值

来自分类Dev

SQLIte SELECT语句在Visual C#中返回相同的值

来自分类Dev

在CASE语句中返回多个结果时,仅更新一次行值

来自分类Dev

SELECT语句中的SELECT返回0个计数

来自分类Dev

NOT IN Select语句返回0值

来自分类Dev

如何在SQLite Select语句中正确表达参数

来自分类Dev

JavaScript条件语句仅返回else值

来自分类Dev

从select语句中的14个可能的列中返回日期

来自分类Dev

正确使用COUNT计数SELECT语句中返回的行数

来自分类Dev

卡在简单的select语句中以返回单行

来自分类Dev

SQLite中的Select语句不返回结果

来自分类Dev

CASE语句中随机生成的值返回NULL

来自分类Dev

If-else语句中的返回值-C ++

来自分类Dev

SQL计数在我的INNER JOIN语句中返回错误的值

来自分类Dev

如何在C ++的if语句中检查lambda的返回值?

来自分类Dev

If-else语句中的返回值-C ++

来自分类Dev

IF语句中函数的返回值显示异常行为

Related 相关文章

热门标签

归档