我的SQLite更新查询有什么问题

时间:2016-10-17 13:26:47

标签: android sqlite android-studio android-sqlite

我的SQLite更新查询不起作用,但不返回错误...

public void updateData(String stickerPackTitle, String installed) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put(COL_INSTALLED, installed);
        db.update(TABLE_NAME, cv, "' " + COL_PACK_NAME + " = " + stickerPackTitle + " '", null);
    } 

3 个答案:

答案 0 :(得分:1)

将更新行替换为:

db.update(TABLE_NAME, cv,  COL_PACK_NAME + " = '" + stickerPackTitle + "'", null);

答案 1 :(得分:0)

尝试这种类型的代码:

public void update_PrimaryOffer(PrimaryOffer p)
    {
        // TODO Auto-generated method stub
        ContentValues contentValues = new ContentValues();

        contentValues.put("businessId", p.getBusinessId());
        contentValues.put("primaryOfferDiscount", p.getPrimaryOfferDiscount());
        contentValues.put("offerImage", p.getOfferName());
        contentValues.put("businessType", p.getBusinessType());
        contentValues.put("businessName", p.getBusinessName());
        contentValues.put("businessInformation", p.getBusinessInformation());
        contentValues.put("businessImage", p.getBusinessImage());
        contentValues.put("offerName", p.getOfferName());
        contentValues.put("offerAddress", p.getOfferAddress());
        contentValues.put("phoneNumber", p.getPhoneNumber());
        contentValues.put("originalPrice", p.getOriginalPrice());
        contentValues.put("expiryDate", p.getExpiryDate());
        contentValues.put("latitude", p.getLatitude());
        contentValues.put("longitude", p.getLongitude());
        contentValues.put("likeStatus", p.getLikeStatus());
        contentValues.put("favoriteStatus", p.getFavoriteStatus());
        contentValues.put("likeCount", p.getLikeCount());
//      contentValues.put("DateTime", p.getDateTime());


        Cursor cursor = sqLiteDatabase.rawQuery("select * from "+TABLE_RECENT_PRIMARY_OFFER+";", null);

        if (cursor.moveToFirst()) {
            do {
                int ii = sqLiteDatabase.update(TABLE_RECENT_PRIMARY_OFFER, contentValues, "businessId="+ p.getBusinessId(),null);
                System.out.println("SQLITE UPDATE SCHEDULER---->" + ii);
            }while(cursor.moveToNext());

        }
        cursor.close();


    }

答案 2 :(得分:0)

以下是在SQLite中使用更新查询的正确方法。您应该将where子句和where参数保存在不同的参数中。是的,不要忘记关闭数据库连接。

db.update(TABLE_NAME, cv, COL_PACK_NAME + " =?", new String[] stickerPackTitle});
db.close();