我试图更新数据库中的一行,但我的代码无效,它什么都没改变。代码中是否缺少某些内容?
public boolean updateContact(Contact contact) { db = getWritableDatabase();ContentValues values = new ContentValues(); values.put(KEY_NAME, contact.getName()); values.put(KEY_PHONE, contact.getPhone()); values.put(KEY_EMAIL, contact.getEmail()); values.put(KEY_ADDRESS, contact.getAddress()); values.put(KEY_IMAGEURI, contact.getImageUri().toString()); return (db.update(TABLE_CONTACTS, values, KEY_ID + "=?", new String[] { "" + contact.getId() }) > 0); }
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "contactManager", TABLE_CONTACTS = "contacts", KEY_ID = "id", KEY_NAME = "name", KEY_PHONE = "phone", KEY_EMAIL = "email", KEY_ADDRESS = "address", KEY_IMAGEURI = "imageUri"; private static SQLiteDatabase db; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_IMAGEURI + " TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); onCreate(db); }
我无法解决这个问题,所以对于我的应用程序工作,我使用另一种形式更新我的数据库,删除它并使用新值创建另一个。但我的第一个问题仍然存在,为什么更新方法不起作用?