4

Androidのsqliteでテーブルを更新する簡単な方法はありますか? (組み込みメソッドの 1 行のように) ? いくつかの列を持つテーブルがあり、プライマリは 1 つの列です。主キーで検索して、テーブル内の行を更新したい。

4

8 に答える 8

13

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'");
于 2012-06-11T10:16:34.280 に答える
6

SQLiteDatabase.updateのドキュメントを読む

次のような結果になるはずです。

affected = db.update(TABLE_NAME, values, where, whereArgs);

UDPATE

エラーが発生しやすい構文を使用した未加工のクエリは、何としてでも避けてください。ここでは、多くの...を使用する多くの回答が見られます'"' + SOMETHING + "'"...これは非常に悪い習慣であり、見つけるのが難しい場所や単に完全に時間の無駄な場所でエラーを探すことにすべての時間を費やします.

未加工のクエリを使用する必要がある場合は、String.format を使用してクエリを作成し、危険なデバッグ セッションや偏頭痛を回避してください。

于 2012-06-11T10:20:18.037 に答える
3

rawQuery次のように使用できます。

cur = mDb.rawQuery("update " + TABLE_NAME
+ " set column1=mango where id='" + _id + "'",null);

どこ

  • curCursorオブジェクトです
  • TABLE_NAMENAME OF THE TABLE
  • _idですname of the column(一例)
于 2012-06-11T10:18:16.203 に答える
1

次に、主キーが何であるかをすでに知っているはずです。

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

于 2012-06-11T10:20:02.443 に答える
0

これを試して:

public void updateFunction(int id) {
            String updateStmnt  = "UPDATE  YOUR_TABLE SET YOUR_COLUMN = "
                    + id;
            database.execSQL(updateStmnt);
        }

それが役立つことを願っています。

于 2012-06-11T10:20:54.360 に答える
0

を使用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);
于 2015-06-01T20:27:06.233 に答える
0

答えは次のとおりです。

http://www.sqlite.org/lang_update.html

SQLiteDatabase.rawQuery(...)

于 2012-06-11T10:18:01.653 に答える