从线程中删除短信SQLite异常

时间:2016-07-25 08:27:21

标签: android sqlite sms

enter image description here我正在开发一个应用程序,当收到sms时,它存储在sqlite数据库中并显示在Listview中。如果从相同的号码收到不同的短信,则短信以线程的形式保存,就像普通的短信应用程序一样。 现在问题是我无法删除数字中的内部消息。我可以删除整个线程,但不能删除线程中的一条消息。 不知道为什么会这样。 这是创建表的查询:

public static final String query_createSMSTablee = "create table " + "smss" + "(" + "id" + " integer primary key autoincrement, "
      + "contactnumber" + " text, " + "contactname" + " text," + "message" + " text," + "date" + " text)";

现在以消息形式发送消息我做了这个:

String query = "select  message  from " + "smss"+ " where " + "contactnumber" + " = \"" + mdataa + "\"" ;

在哪里" mdataa"包含发件人的号码。 "消息"仅包含消息内容 所以以这种方式,这成为一个线程,即仅显示来自线程内特定数字的消息。 现在,当我长时间点击消息并尝试通过此查询删除时,这会显示错误:

String deleteScreenedMessage = "delete from " + "smss" + " where " + "id" + " = \"" + id + " AND " + "message" + " = \"" + selectedFromList + " AND " + "contactnumber" + " = \"" + mdataa + "\"" ;
DBtableforNotSpam smsDb = new DBtableforNotSpam(Conversation.this);
SQLiteDatabase dbw = smsDb.getWritableDatabase();
dbw.execSQL(deleteScreenedMessage);
dbw.close();

这里" selectedFromList"表示邮件的内容,mdataa包含发件人的号码。 但是这个查询给出了强制停止错误,并说Sqlite Exception。 请帮助任何人

1 个答案:

答案 0 :(得分:0)

你的查询字符串是不正确的,你正在引号,

尝试此查询,

String deleteScreenedMessage = "delete from " + "smss" + " where " + "id" + " 
       = " + id + " AND " + "message" + "='" + selectedFromList + "' AND " + 
                                                "contactnumber" + " ='" + mdataa +"'" ;