我尝试了以下SQLite查询:
int idServizo = 150;
String whereClause = id_servizio+" = '"+idServizio+" ' ";
ContentValues cv = new ContentValues();
cv.put("sync", 1);
int r = dbManager.updateTable("myTable", cv, whereClause);
Run Code Online (Sandbox Code Playgroud)
字段sync和id_servizio都是整数.updateTable方法是:
public int updateTable(String table, ContentValues values, String whereClause){
int r = mDb.update(table, values, whereClause, null);
return r;
}
// mDb is SQLiteDatabase object
Run Code Online (Sandbox Code Playgroud)
这一切都很好.但是如果我用rawQuery()方法尝试这个:
public Cursor RawQuery(String sqlQuery, String[] columns){
return mDb.rawQuery(sqlQuery, columns);
}
Run Code Online (Sandbox Code Playgroud)
表格未更新!即使没有发生错误.
int idServizo = 150;
String updateQuery ="UPDATE myTable SET sync = 1 WHERE id_servizio = "+idServizio;
dbManager.RawQuery(updateQuery, null); …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个分数数据库,当他们通过调用updateScore()获胜时,将玩家的分数增加1.主键和玩家编号相同(我可能需要在某些时候重新构建DB),最后一列是"得分".
下面是最初设置的分数(这个工程),即得到的分数(也能正常工作),并更新得分的方法,增加了有关球员得分1.该方法的代码是不工作的一部分,我有什么不同的地方吗?谢谢.
/** Add a record to the database of two player scores
* @param playerId
* @param playerScore
**/
public void addScore (int playerId, int playerScore) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ID, playerId);
values.put(PLAYERNUM, playerId);
values.put(SCORE, playerScore);
database.insert(TABLE_2PSCORES, null, values);
database.close();
}
// Get the score
public int getScore (int playerId) {
SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.query(TABLE_2PSCORES, COLUMNS, " player = ?", new String[] {String.valueOf(playerId) }, null, null, null, null); //null …Run Code Online (Sandbox Code Playgroud) 可能重复:
Android中的SQLite如何更新特定行
是否可以使用where status更新一列的数据库这是我的表结构,我需要使用"id"更新"messagestatus"列.
db.execSQL("CREATE TABLE IF NOT EXISTS autosms(id INTEGER PRIMARY KEY AUTOINCREMENT ,phonenumber VARCHAR(15) ,message VARCHAR(5000) , year VARCHAR(10) , month VARCHAR(10) , date VARCHAR(10) , hour VARCHAR(10) , minute VARCHAR(10) , messagestatus VARCHAR(10))");
Run Code Online (Sandbox Code Playgroud)
我尝试了这个,但没有成功theres警告"没有这样的列发送"
public void update(int id)
{
String s = "Send";
db= SQLiteDatabase.openDatabase("data/data/com.example.schduled_messages/SMS_Schdule_Sample.db", null, SQLiteDatabase.CREATE_IF_NECESSARY);
db.execSQL("UPDATE autosms SET messagestatus="+s+" WHERE id="+id+"");
}
Run Code Online (Sandbox Code Playgroud)
提前致谢..
我试图使用rawQuery和execSQL用于操纵方法,而不是我的数据库,.update,.insert,等我想用下面的代码进行更新:
db.execSQL("UPDATE configuration " +
"SET number_fields = " + number_fields + ", "
+ "frequency = " + frequency + ", "
+ "ag = " + ag + ", "
+ "number_alarms = " + number_alarms + ", "
+ "failed_rapper = " + failed_rapper + ", "
+ "max_mv = " + max_mv + ", "
+ "max_nav = " + max_nav + " "
+ "WHERE serial_id = …Run Code Online (Sandbox Code Playgroud) 我引用了以下几页,但我的问题仍未解决,
Android sqlite更新表总是返回0 ,Android中的SQLite如何更新特定行 ,Android SQLite更新行无效,android SQLite中的Update Function无法正常工作且SQLiteDatabase更新无法正常工作?
我有一个sqlite数据库作为QUESTIONS(ID,QUES,ANS),ID是主键.当我尝试使用以下代码更新值时,数据库中不会发生任何更改.
SQLiteDatabase db = null;
ContentValues values = new ContentValues();
values.put("QUES","New title");
values.put("ANS","Answer" );
long k= db.update("QUESTIONS",values,"ID=2",null);
Log.d("Success",""+k);
Run Code Online (Sandbox Code Playgroud)
k的值为1,数据库没有变化.我也尝试过
long k= db.update("QUESTIONS",values,null,null);
Run Code Online (Sandbox Code Playgroud)
但没用.