如何插入或更新表基于Sqlite android

时间:2015-10-10 05:30:09

标签: android sqlite

public long createCountry(String code, String name, String continent,
     String region) {

     ContentValues initialValues = new ContentValues();
     initialValues.put(KEY_PRODUCT_TYPE, code);
     initialValues.put(KEY_PRODUCT_NAME, name);
     initialValues.put(KEY_PRODUCT_QUANTITY, continent);
     initialValues.put(KEY_PRODCUT_COST, region);

     return mDb.insertWithOnConflict(SQLITE_TABLE, null, initialValues, SQLiteDatabase.CONFLICT_REPLACE);

     }

这是插入或更新功能,但是如果名称X在表格行中存在,它会占用新的行我希望它应该更新像假设我们有3个名称列值有X,Y,Z的条目现在假设我想要调用再次这个函数与名称X然后其余的值应该更新不应该创建另一个列请帮我在哪里做错了。

1 个答案:

答案 0 :(得分:0)

没有更新或插入功能。 您必须手动执行此操作:

public void createCountry(String code, String name, String continent, String region) {
    ContentValues values = new ContentValues();
    values.put(KEY_PRODUCT_TYPE, code);
    values.put(KEY_PRODUCT_QUANTITY, continent);
    values.put(KEY_PRODCUT_COST, region);
    int updated = mDb.update(SQLITE_TABLE, values,
                    KEY_PRODUCT_NAME + " = ?",
                    new String[]{ name });
    if (updated == 0) {
        values.put(KEY_PRODUCT_NAME, name);
        mDb.insert(SQLITE_TABLE, null, values);
    }
}