Androidのsqliteでテーブルを更新する簡単な方法はありますか? (組み込みメソッドの 1 行のように) ? いくつかの列を持つテーブルがあり、プライマリは 1 つの列です。主キーで検索して、テーブル内の行を更新したい。
8 に答える
Android から事前定義されたupdateメソッドで使用するには、次のように使用します。
ContentValues args = new ContentValues();
args.put("col_name", "new value");
db.update("table_name", args, String.format("%s = ?", "primary_column"),
new String[]{"primary_id"});
または、1 行で実行するには、次のようにします (推奨されません)。
db.execSQL("UPDATE table_name SET col_name='new_value' WHERE
primary_column='primary_id'");
SQLiteDatabase.updateのドキュメントを読む
次のような結果になるはずです。
affected = db.update(TABLE_NAME, values, where, whereArgs);
UDPATE
エラーが発生しやすい構文を使用した未加工のクエリは、何としてでも避けてください。ここでは、多くの...を使用する多くの回答が見られます'"' + SOMETHING + "'"
...これは非常に悪い習慣であり、見つけるのが難しい場所や単に完全に時間の無駄な場所でエラーを探すことにすべての時間を費やします.
未加工のクエリを使用する必要がある場合は、String.format を使用してクエリを作成し、危険なデバッグ セッションや偏頭痛を回避してください。
rawQuery
次のように使用できます。
cur = mDb.rawQuery("update " + TABLE_NAME
+ " set column1=mango where id='" + _id + "'",null);
どこ
cur
Cursor
オブジェクトですTABLE_NAME
はNAME OF THE TABLE
_id
ですname of the column
(一例)
次に、主キーが何であるかをすでに知っているはずです。
dbHelper.getWritableDatabase();
ContentValues values = createContentValues(profileVo);
db.update(ProfileVO.TABLE_NAME, values, ProfileVO.COLUMN_ID + "=" + profile.getId(), null)
ここにあなたのための良いチュートリアルがありますhttp://www.vogella.com/articles/AndroidSQLite/article.html
これを試して:
public void updateFunction(int id) {
String updateStmnt = "UPDATE YOUR_TABLE SET YOUR_COLUMN = "
+ id;
database.execSQL(updateStmnt);
}
それが役立つことを願っています。
を使用database.update
すると、次のように簡単になります。
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.COLUMN_NAME, name);
values.put(MySQLiteHelper.COLUMN_JOB, job);
values.put(MySQLiteHelper.COLUMN_DATE_START, date_start);
database.update(MySQLiteHelper.TABLE_EMPLOYEES, values, MySQLiteHelper.COLUMN_ID+"="+id, null);