0

更新クエリでアプリがクラッシュし、次のエラーが表示される

10-26 12:35:59.219: E/AndroidRuntime(23078): Caused by: android.database.sqlite.SQLiteException: no such column: current_Playlist.xml: , while compiling: UPDATE FileRevisionHistory SET FileRevision=? WHERE FileName=current_Playlist.xml

アップデートのコードは

public void updateFileRevision(FileRevision  inFileRevision) {
    ContentValues values = new ContentValues();
    values.put(MySQLiteHelper.KEY_REVISION, inFileRevision.mRevision);
    long updatetId = database.update(MySQLiteHelper.TABLE_REVISION_HISTORY, values,MySQLiteHelper.KEY_NAME + "=" + inFileRevision.mFileName,null);
    Log.i("DbExampleLog", "The file's rev is: " + updatetId);

クエリの何が問題になっていますか?

4

2 に答える 2

1

最初は、アプローチがあまりきれいではないため、プレースホルダーを使用することをお勧めします。

したがって、次のようにします。

long updatetId = database.update(<tableName>, values, <column> + " = ?", 
                                 new String[] {inFileRevision.mFileName});


注:'アプローチを使用する場合は、一重引用符と呼ばれるものを使用する必要があります

于 2012-10-26T07:23:09.970 に答える
1

指定するファイル名は文字列なので、単一引用符で囲む必要があります。これを試して

long updatetId = database.update(MySQLiteHelper.TABLE_REVISION_HISTORY, values,MySQLiteHelper.KEY_NAME + "='" +inFileRevision.mFileName+ "'",null);
于 2012-10-26T07:24:43.153 に答える