0
我有應用程序包含數據庫,我創造了許多表和wihtout任何問題,插入數據,但是當我更新的數據,沒有更新的數據沒有任何問題出現在日誌SQLite的更新不能正常工作
代碼:中類DB延伸SqliteOpenHelper我有的onCreate如以下代碼
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table table1(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT ,source TEXT ,isFav INTEGER)");
db.execSQL("create table table2(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT,source TEXT ,isFav INTEGER)");
db.execSQL("create table table3(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT,source TEXT, isFav INTEGER)");
db.execSQL("create table fav (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT,source TEXT ,isFav INTEGER)");
}
也,此更新方法的代碼:
public int updateData(String tableName,Long id, int fav) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("isFav",fav);
String myid= String.valueOf(id);
Log.w("myApp", myid+ " fav = "+fav);
int i = database.update(tableName, contentValues, "ID=?", new String[]{myid});
if (i > 0)
return 1;
else return 0;
}
我有另一類是listAdapterË xtends ArrayAdapter我想從這個類更新。 getView包含onClickListener當按鈕點擊它應該是更新 :
int a=db.updateData(sh.getString("listType","table1"),arrayList.get(position).getId(),1);
我確定表名(sh.getString( 「listType」, 「表1」)),它提供withot問題.. 什麼問題在上面的代碼..請幫我
你確定你逝去的使用方法'的getId()'正確的ID?另外我認爲sqlite是不區分大小寫的,但只是用「id」替換「ID」來測試。 –
是的,我確信getId() –
你100%確定它是正確的ID?我建議做'Cursor csr = database.query(tableName,null,「where ID =?」,new String [] {myid},null,null,null,null);'後面跟着'if(csr .getCount()<1){Log.d(「DBUPDATE」,「無法更新id =」+ Integer.toString(fav)+「不存在。」);}' – MikeT