2013-04-27 54 views
0

我有一個數據庫惠特2列(名稱(文本)和asist(int))我想添加一個到asist字段,但我不認爲我在正確的方式做到目前爲止,我有這個代碼。如何添加一個到我的數據庫中的字段?

public void update(String []names,int howany){ 

    for(int i=0;i<howmany;i++){ 
    ContentValues valores = new ContentValues(); 
    valores.put("asist", +1); 
    this.getWritableDatabase().update("Names", valores, "name="+names[i],null); 
    } 

} 

感謝您的幫助! :)

回答

1

用途:

ContentValues valores = new ContentValues(); 
valores.put("asist", "asist + 1"); 
this.getWritableDatabase().update("Names", valores, "name="+names[i],null); 
+0

這將在'asist'列字符串''ASIST + 1''設置的值。 – 2013-04-28 05:34:56

1

update方法不支持新的價值觀SQL表達式; 你將不得不讀取舊值並在程序中增加它。

更好的方法是直接寫整個SQL語句:

getWritableDatabase().execSQL(
    "UPDATE Names SET asist = asist + 1 WHERE name = ?", 
    new Object[]{ names[i] }); 
+0

謝謝!但還有一個問題再問兩個XD字符「?」的含義是什麼?名字旁邊?並且Sql語句的代碼會進入我的SQLiteOpenHelper子類中? pd:抱歉,如果我沒有正確寫入,但我正在學習英語 – 2013-04-28 06:15:33

+0

'?'是一個參數標記,它允許您使用值而不必格式化和轉義它們(當字符串變得麻煩時包含引號或特殊字符),並避免安全問題[如此](http://xkcd.com/327/)。 – 2013-04-28 08:00:05

+0

感謝您的幫助,問題解決了:) – 2013-04-29 06:47:20

相關問題