2017-04-24 16 views
0

更新を実行するためにクエリがスタックされています。正しく実行された更新を実行するコードがあります。これを行うクエリが誰かが助けてくれるかどうかはわかりません。それは素晴らしいだろう。私は3つの変数と3つの古い変数とidも渡しています。私がしたクエリはちょうど間違いだとわかっています。SQLite更新リストビュークエリが正しくない

public void updateTable(String newDate, String newMethod, String newAmount, int id, String oldDate, String oldMethod, String oldAmount){ 
    db = this.getWritableDatabase(); 
    String query = "UPDATE " + TABLE_INCOME + " SET " + COL2 + " " + COL3 + " " + COL4 + " = '" + newDate + newMethod + newAmount + "' WHERE " + COL1 + " = '" + id + "'" + 
     " AND " + COL2 + " " + COL3 + " " + COL4 + " = '" + oldDate + oldMethod + oldAmount + "'"; 
    db.execSQL(query); 
} 

答えて

0
SQLiteDatabase db = this.getWritableDatabase(); 
ContentValues values = new ContentValues(); 

values.put("COL2", newDate); 
values.put("COL3", newMethod); 
values.put("COL4", newAmount); 

long result = db.update("TABLE_INCOME", values, "COL1 = " + "'" + String.valueOf(id) +"'" , null); 
Log.i(TAG, " update result : " + result); 

あまりにも多くのパラメータを使用しないでください。あなたのIDが一意であれば十分です。私はそれが助けてくれることを願っています。

+0

'id'は文字列ではありません。 –

+0

String.valueOf(id) – Irabzz

+0

'" ... "+ id'が実際に動作します。問題は、データベースの 'id'カラムに文字列値が含まれていないことです。 –

関連する問題