该表包含4列:rowID,word,defintition,group_id
我想改变某一行的词和定义。所以这是我的代码(word是一个对象,其中存储了单词,definition,id和group_id)
ContentValues values = new ContentValues();
values.put(KEY_WORD, word.getWord());
values.put(KEY_DEFINITION, word.getDefinition());
db.update(TABLE_WORDS, values, KEY_ID, new String [] {String.valueOf(word.getID())});
任何人都可以告诉我为什么它只创建一个新行而不是更改给定ID下的行?
@Digvesh有正确的想法,但由于this limitation,将int转换为String以用作选择arg将无法正常工作。而是这样做:
// assume: SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_WORD, word.getWord());
values.put(KEY_DEFINITION, word.getDefinition());
int rowsUpdated = db.update(TABLE_WORDS, values, KEY_ID + "=" + word.getID(), null);
这项工作对我来说,而db.rawquery不起作用。
输出查询
String qu="UPDATE "+ DATABASE_TABLE_DATA + " SET "+isbookmark+" = "+status+" WHERE id = "+uid+";";
db.execSQL(qu);
output query :
UPDATE tabel_data SET `isbookmark` = 1 WHERE id = 2720271;
使用LIKE而不是=运算符。
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_DATE, contact.getDate());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " LIKE ?",
new String[] { String.valueOf(contact.getID()) });
use this link它将帮助您更新SQLite数据库中的查询