[英]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.