我有一个由这个sql命令创建的表 - > CREATE TABLE消息(id整数主键autoincrement,senderNum String,messagebody String,label String);
在此表中,我有一行,其senderNum等于123.为了向其应用标签,我调用了这样的方法 - >
public void ApplyLabel(String senderNum){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("update messages set label=personal where senderNum=" + senderNum,null);
}
其中变量senderNum的值为123.现在,当调用此方法时,它会抛出这样的错误 - > android.database.sqlite.SQLiteException:没有这样的列:个人(代码1):,同时编译:更新消息set label = personal where senderNum = 123
我不知道为什么会出现这个错误?
答案 0 :(得分:1)
您缺少围绕字符串值的字符串分隔符(' )。
现在,您正在将名为label
的列与另一个名为personal
的列进行比较,该列不存在。
尝试:
Cursor res = db.rawQuery("update messages set label='personal' where senderNum=" + senderNum,null);
如果要使用变量,可以连接字符串,如下所示:
Cursor res = db.rawQuery("update messages set label='" + strPersonal + "' where senderNum=" + senderNum,null);