我的应用在更新查询中崩溃并出现以下错误
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);
我的查询有什么问题?
答案 0 :(得分:1)
首先,我建议您使用占位符,因为您的方法不是很干净。
所以这样做:
long updatetId = database.update(<tableName>, values, <column> + " = ?",
new String[] {inFileRevision.mFileName});
注意:如果您想使用自己的方法,则需要使用名为单引号的'
答案 1 :(得分:1)
由于您指定的文件名是字符串,因此它应该在单引号内。试试这个
long updatetId = database.update(MySQLiteHelper.TABLE_REVISION_HISTORY, values,MySQLiteHelper.KEY_NAME + "='" +inFileRevision.mFileName+ "'",null);