SQLite更新无效

时间:2017-10-18 18:09:03

标签: android sqlite android-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 extends ArrayAdapter我想从这个类更新。 getView包含onClickListener,当点击按钮时它应该更新 :

 int a=db.updateData(sh.getString("listType","table1"),arrayList.get(position).getId(),1);

我确定了表名(sh.getString(“listType”,“table1”)),它提供了问题.. 上面的代码有什么问题..请帮帮我

1 个答案:

答案 0 :(得分:0)

可能是你的id应该作为整数传递而不是字符串。 或者你可以尝试这个

int i = database.update(tableName, contentValues, "ID='?'", new String[]{myid}); 
相关问题