问题已解决,请看下面的评论
我正在尝试更新数据库,但是where子句不起作用。我已经看过代码示例,但是它们对我不起作用。
这是表格的外观。
public static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + MessageEntry.TABLE_NAME + " (" +
MessageEntry.COLUMN_NAME_ENTRY_ID + " INT AUTO_INCREMENT PRIMARY KEY," +
MessageEntry.COLUMN_NAME_ENTRY_USERNAME +
" VARCHAR(20)," +
MessageEntry.COLUMN_NAME_ENTRY_MESSAGE+" VARCHAR(1000)," +
MessageEntry.COLUMN_NAME_ENTRY_OUT + " SMALLINT NOT NULL DEFAULT 0,"+
MessageEntry.COLUMN_NAME_ENTRY_STATUS + " VARCHAR(10),"+
MessageEntry.COLUMN_NAME_ENTRY_TIME + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP)";
这是更新表的方法。我尝试了一些更新调用,但都没有用。还用硬值1。
public void updateChatMessageStatus(long id,String status){
MessageHelper helper = new MessageHelper(this.context);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MessageEntry.COLUMN_NAME_ENTRY_STATUS, status);
String[] where = {String.valueOf(id)};
db.update(MessageEntry.TABLE_NAME, values, MessageEntry.COLUMN_NAME_ENTRY_ID+"=" +id, null);
db.update(MessageEntry.TABLE_NAME, values, MessageEntry.COLUMN_NAME_ENTRY_ID+"=" +1, null);
db.update(MessageEntry.TABLE_NAME, values, MessageEntry.COLUMN_NAME_ENTRY_ID+"=1", null);
db.update(MessageEntry.TABLE_NAME, values, MessageEntry.COLUMN_NAME_ENTRY_ID+"=?", where);
db.execSQL("UPDATE " + MessageEntry.TABLE_NAME+ " SET " +MessageEntry.COLUMN_NAME_ENTRY_STATUS+"='"+status
+"' where "+ MessageEntry.COLUMN_NAME_ENTRY_ID +"="+1);
db.execSQL("UPDATE " + MessageEntry.TABLE_NAME+ " SET " +MessageEntry.COLUMN_NAME_ENTRY_STATUS+"='"+status
+"' where "+ MessageEntry.COLUMN_NAME_ENTRY_ID +"="+id);
}
我有点卡在这里,谢谢你的帮助。
id列创建错误。在使用int和auto_increment创建自动生成的id列之前。但是在android中,创建自动生成的键列的正确方法是使用autoincrement和integer。
校正表
"CREATE TABLE " + MessageEntry.TABLE_NAME + " (" +
MessageEntry.COLUMN_NAME_ENTRY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +...
更新我使用的电话
values.put(MessageEntry.COLUMN_NAME_ENTRY_STATUS, status);
String[] where = {String.valueOf(id)};
db.update(MessageEntry.TABLE_NAME, values, MessageEntry.COLUMN_NAME_ENTRY_ID+"=?", where);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句