Я хочу удалить строку в базе данных sqlite. Пожалуйста, обратитесь к sql datastructure и моему текущему методу удаления, который не работает.SQLite Android Удалить строку базы данных
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) приложение для Android, так что пользователь может отправлять и получать сообщения. В то время как операции, такие как получение сообщения и т. Д., Работают, опция удаления - нет.
Я ищу, чтобы удалить весь разговор между пользователем, другими словами, не индивидуальное сообщение в разговоре, а весь разговор сам. Я предполагаю, что правильный путь - узнать имя пользователя и удалить всю строку. Таблица 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;
}
так где вопрос то? ... ваш код выглядит OK форму мне ... Remeber ... он не будет изменять данные в ListView без дополнительного кодирования ... – Selvin
как уже упоминались, я хотите удалить строку, соответствующую имени пользователя, однако она не работает должным образом. Я имею в виду, что сообщение не удаляется из базы данных. – Mikelbstek
Каков результат возврата? И есть ли какое-то исключение? –