我想删除 sqlite 数据库中的一行。请参考 sql 数据结构和我当前不起作用的删除方法。
private static final String[] TABLE_MESSAGE_FIELDS = {
FIELD_USERNAME, "CHAR(32) NOT NULL",
FIELD_READED, "INTEGER(1) NOT NULL",
FIELD_SEND, "INTEGER(1) NOT NULL",
FIELD_TIMESTAMP, "INTEGER(64) NOT NULL",
FIELD_CONTENT, "TEXT NOT NULL",
};
//more tables
private static final String[] TABLE_MESSAGE_INDEXS = {
FIELD_USERNAME, FIELD_READED,
};
就是这样的结构,基本上它是一个即时通讯(IM)安卓应用,所以用户可以发送和接收消息。虽然接收消息等操作正在运行,但删除选项却没有。
我希望删除用户之间的整个对话,换句话说,不是对话中的单个消息,而是整个对话本身。我想正确的方法是找出用户名,然后删除整行。表 TABLE_MESSAGE_FIELDS 包含指示消息的 5 列,我想删除整个对话。
我就是这样做的
public boolean deleteMessage(String userName)
{
SQLiteDatabase database = mLocalDatabase.getWritableDatabase();
final String[] COLUMNS = { FIELD_TIMESTAMP, FIELD_CONTENT };
final String SELECTION = FIELD_USERNAME + "=?" ;
//database.beginTransaction();//do i need this?
boolean result= database.delete(TABLE_MESSAGE,SELECTION,new String[]{userName})>=0;
//database.endTransaction();//??
database.close();
return result;
}