我试图删除名为Globals的数据库中的所有内容,其中包含一个sessionID列表。每次用户登录时都会生成一个SessionID,因此数据库中不需要先前的sessionID,因为它们永远不会再次使用,所以必须删除它们。我实现了一种方法来删除数据库中除了指定的那个之外的所有sessionID,但是当我运行我的代码时出现这个错误:
" android.database.sqlite.SQLiteException:无法识别的令牌:" 8a8878dc" (代码1):,编译"
我该如何解决这个问题?
这是我删除sessionID的删除方法
public void deleteAll(String sessionID) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_SESSIONSTATE, KEY_SESSIONID + " != " + sessionID , null);
}
并在此代码中运行: 结果对象返回一个字符串,该字符串给出了我想要使用的sessionID
SoapObject result = (SoapObject)envelope.bodyIn;
if(result != null)
{
globals = new Globals(getBaseContext());
String resultStr = result.getPropertyAsString(0);
resultStr = resultStr.replace("\n", "");
String [] resultArr = resultStr.split("\\^");
sessionID = resultArr[0];
globals.deleteAll(sessionID);
}
答案 0 :(得分:0)
在SQL中,必须在引号'中写入字符串。
但是,为了避免格式化这样的问题,您应该使用参数:
db.delete(TABLE_SESSIONSTATE,
KEY_SESSIONID + " != ?",
new String[] { sessionID });
答案 1 :(得分:0)
试试这个: