-2

COLUMN_NAME_PERIOD_END という名前のデータベースの列を更新しようとしましたが、更新できないようです。

String[] endDate = new String[1];
endDate[0] = paraPeriodDetailsPojoObj.getPeriodEndDate();

Log.d("PeriodEnd.onClick()", "Date: " + endDate[0]);

/*UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
*/

sqliteDatabase.update(DBStorage.TABLE_NAME_PERIODSTART, contentValues, DBStorage.COLUMN_NAME_PERIOD_END+"=?", endDate);

エラーメッセージは表示されなかったので、エラーが発生しているのは update ステートメントであると思います。:(

4

1 に答える 1

0

ドキュメントから:

update(String table, ContentValues values, String whereClause, String[] whereArgs)

したがって、 の配列contentValues(表示されていないため、問題がある可能性があります) を で定義されたテーブルに入れ、which must equal でTABLE_NAME_PERIODSTART定義された列を検索して、更新するレコードを選択します。COLUMN_NAME_PERIOD_ENDendDate

私があなたの質問のタイトルを読んだ方法は、実際にendDateで列を更新したいという印象を受けていますCOLUMN_NAME_PERIOD_END...その場合、SQLが正しくありません。

それ以外の場合は、次の可能性が考えられます。

1) 制約...not nullフィールドが定義されていて、null で更新しようとしていますか?
2) プログラムの日付形式がデータベースの日付形式と異なっています
3) DB で検索している endDate に一致するレコードがありません

于 2012-06-06T06:44:44.177 に答える