2011-07-29 24 views
1

我想更新我的表在以下方面提供查詢列之一:增加sqlite的列值,而不法execSQL

update TABLE set COLUMN_NAME= COLUMN_NAME+1; 

使用,如果更多鈔票在SQLiteDatabase的

update(String table, ContentValues values, String whereClause, String[] whereArgs) 

方法在android系統 類是更多鈔票?

在此先感謝

+0

什麼COLUMN_NAME的數據類型?它是INTEGER嗎?如果是這樣,只要查詢沒有錯誤,你可以這樣做。 –

+0

是是一個整數,但是,如果使用 ContentValues值=新ContentValues(); values.put(KEY_COUNT,KEY_COUNT + 1);它失敗 – Starterrr

+0

是的。只需指定'whereClause',如果你留下空/不正確的語句,它可能會導致異常。把它設置成類似'「id _ =?」' –

回答

0

雖然這是一個有點姍姍來遲,我只是補充說,工作的例子...

SQLite version 3.7.9 2011-11-01 00:52:41 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> create table test1(a int primary key, b int); 
sqlite> begin transaction; 
sqlite> insert into test1(a,b) values (1,4); 
sqlite> insert into test1(a,b) values (2,5); 
sqlite> insert into test1(a,b) values (3,4); 
sqlite> commit; 
sqlite> select * from test1; 
1|4 
2|5 
3|4 
sqlite> update test1 set b=b+1; 
sqlite> select * from test1; 
1|5 
2|6 
3|5 
sqlite> update test1 set b=b+10; 
sqlite> select * from test1; 
1|15 
2|16 
3|15 
sqlite> 
0

你可能有一些運氣execSQL。下面是我做來解決類似的問題:

db.beginTransaction(); 
try { 
    //do update stuff, including execSQL() 
    db.setTransactionSuccessful(); 
} finally { 
    db.endTransaction(); 
} 

參見https://stackoverflow.com/a/5575277/6027