質問の回答は他の回答者様で既に出ていますが、SQL Injectionについて
db.execSQL("update MEMO_TABLE set body = '" + bodyStr + "', total='"+d+"total"+"' where uuid = '" + id + "'");
EditTextは画面の項目ですよね。画面の入力項目の値をSQLにそのまま渡していると仮定して回答しますが、
質問文のコードはdb#execSQLが引数で渡されたSQL文字列に対して、
サニタイジング(無害化)を行っていない限り、画面のレイアウト定義とbodyStr,d,idの型によりますが、SQL Injectionが実行可能なコードになります。
SQL Injection防止のため、文字列(String)でSQLを結合することは避けて、バインドパラメータを使用してくださいな。
質問文にはテーブル定義やテーブルデータが無いため、データの型を推測して回答します。
こんな感じになります。
Java
1final String sql = "UPDATE MEMO_TABLE SET body=?,total=total+? WHERE uuid=?";
2SQLiteStatement stmt = db.compileStatement(sql); // APIレベル19以上からtry~with~Resources文が使えるはずです!
3int row_count = 0;
4try {
5 stmt.bindString(1, bodyStr);
6 stmt.bindLong(2, d);
7 stmt.bindString(3, id);
8 row_count = stmt.executeUpdateDelete();
9 switch(row_count) {
10 case 0:
11 // 更新対象データなし
12 Log.e("sql", stmt.toString());
13 break;
14 case 1:
15 // 正常時:更新件数が1件の時
16 Log.d("sql", String.valueOf(row_count));
17 break;
18 default:
19 // 複数件(データ不整合)
20 // 本当に起こり得ないなら、特別なエラー処理を行った方がいいです。
21 Log.e("sql", stmt.toString());
22 break;
23 }
24}finally {
25 stmt.close();
26}
■参考情報