繁体   English   中英

Android SQLite行未更新

[英]Android SQLite row doesn't update

我在这个问题上遇到了很大的麻烦。 我有一个名为Category的sqlite表,其中将“名称”和“限制”列分别作为文本和整数。 这是一些代码:

   private static final String CREATE_TABLE_CATEGORY = "CREATE TABLE "
            + TABLE_CATEGORIES + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_CATEGORY_NAME
            + " TEXT," + KEY_SET_LIMIT + " INTEGER" + ")";

有类别的模型类:

public class Category {

int id, limit;
String categoryName;

// Constructors

public Category(){

}

public Category(String categoryName, int limit){
    this.categoryName = categoryName;
    this.limit = limit;
}

//Setters

public void setCategoryName(String categoryName){
    this.categoryName = categoryName;
}

public void setId(int id){
    this.id = id;
}

public void setLimit(int limit) {
    this.limit = limit;
}

// Getters

public String getCategoryName(){
    return this.categoryName;
}

public int getId(){
    return this.id;
}

public int getLimit() {
    return this.limit;
}

@Override
 public String toString(){
    return getId() + " " + getCategoryName() + " " + getLimit();
}




}

还有创建类别和更新方法:

public long createCategory(Category cat) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_CATEGORY_NAME, cat.getCategoryName());
    values.put(KEY_SET_LIMIT, cat.getLimit());


    // insert row
    long cat_id = db.insert(TABLE_CATEGORIES, null, values);

    return cat_id;
}

public int updateCategoryLimit(long cat_id, int limit) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_SET_LIMIT, limit);


    // updating row
    return db.update(TABLE_CATEGORIES, values, KEY_ID + " = ?",
            new String[] { String.valueOf(cat_id) });
}

在微调器中,我具有Category类中的Overriden方法toString。 它显示如下。 从左侧开始:ID,Category_Name,Category_Limit。 问题是我将所有限制都设置为10。即使使用其他整数,它也始终显示为“ 2”。 请帮助 :)

这是图像的链接: http : //i.stack.imgur.com/Ae3YZ.png

如果发生错误,insert()调用将返回-1。 我认为您应该检查一下。 并确保您输入正确的列名称。 我试过你的代码,工作正常!

05-11 23:13:14.110:I / db更新s =(30650):s = 1

 ContentValues values = new ContentValues();
        values.put(KEY_SET_LIMIT, 29);
       int s= db.update(TABLE_CATEGORIES, values, KEY_ID + " = ?", new String[] { String.valueOf(2) });
       Log.i("db update s=", "s= " +s); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM