这会使用android.sqlite正确更新我的sqlite数据库吗?

时间:2013-05-26 10:51:24

标签: android database sqlite cursor

我过去4天一直在努力从我的sqlite数据库中获取数据,因为出于某种原因,我使用的查询不起作用。这是我的功能:

public void updateBadgesRecord(int rowId, String id, String name, String description, String image_url, String club_id, String created_at) 
{

    Log.i("image_url in updateBadgesRecord", image_url);
    ContentValues args = new ContentValues();
    if(id != null){
    args.put(KEY_BADGES_ID, id);
    }
    if(name != null){
    args.put(KEY_BADGES_NAME, name);
    }
    if(description != null){
    args.put(KEY_BADGES_DESCRIPTION, description);
    }
    if(image_url != null){
    args.put(KEY_BADGES_IMAGEURL, image_url);
    }
    if(club_id != null){
    args.put(KEY_BADGES_CLUBID, club_id);
    }
    if(created_at != null){
    args.put(KEY_BADGES_CREATEDAT, created_at);
    }


    //return db.update(DATABASE_TABLE_BADGES, args, KEY_ROWID + "=" + rowId, null) > 0;
    db.update(DATABASE_TABLE_BADGES, args, KEY_ROWID + "= ?",  new String[]{String.valueOf(rowId)});

}

运行此方法似乎不会产生任何错误。

但是当我尝试从该表中获取所有数据时:

public Cursor getBadgeRecord(int rowId) throws SQLException 
{
    Cursor mCursor =
            db.query(true, DATABASE_TABLE_BADGES, new String[] {KEY_ROWID,
            KEY_BADGES_ID, KEY_BADGES_NAME, KEY_BADGES_DESCRIPTION, KEY_BADGES_IMAGEURL, KEY_BADGES_CLUBID, KEY_BADGES_CREATEDAT}, 
            KEY_ROWID + "=" + rowId, null, null, null, null, null);

    if (mCursor != null) {
        mCursor.moveToFirst();
    }

    int columnIndex = mCursor.getColumnIndex("image_url");
    Log.i("mCursor", columnIndex+"<--- column index" + " | row id"+ rowId);
    return mCursor;
}

我的光标记录数为0.可能导致这种情况的原因是什么?我尝试了各种不同的查询,所以我现在正放弃而不是使用sqlite数据库存储数据。请帮我。

1 个答案:

答案 0 :(得分:2)

db.update(...)更新现有行。您可能想要db.insert(...) link