android.database.sqlite.SQLiteException:没有这样的列:个人(代码1):

时间:2015-12-21 16:18:52

标签: android sqlite android-sqlite

我有一个由这个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

我不知道为什么会出现这个错误?

1 个答案:

答案 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);