2014-05-11 2 views
0

이 문제와 관련하여 큰 문제가 있습니다. 나는 텍스트 및 정수로 "이름"과 "제한"열을 넣는 범주라는 내 sqlite 테이블이 있습니다.Android 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(); 
} 




} 

가 및 카테고리 및 업데이트 방법을 만들 수있다 : 나는 종류의 클래스에서 toString 메소드를 오버라이드 (override) 한 회 전자에서

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) }); 
} 

을 몇 가지 코드입니다 . 다음과 같은 내용을 보여줍니다. 왼쪽부터 : ID, Category_Name, Category_Limit. 문제는 모든 제한을 10으로 설정한다는 것입니다. 다른 정수를 사용하더라도 항상 '2'가 표시됩니다. http://i.stack.imgur.com/Ae3YZ.png

답변

1

삽입() 호출이 반환을 에러가 발생하면 -1 : 여기에 링크가 이미지의

:) 제발 도와주세요. 나는 너가 그것을 검사해야한다고 생각한다. 올바른 열 이름을 쓰는지 확인하십시오. 코드를 사용해 보았지만 제대로 작동합니다.

05-11 23 : 13 : 14.110 : I/DB 업데이트의 = (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); 
+0

그러나 범주 좋은 방법으로 추가됩니다. ID와 Category_Name은 문제가 없지만 제한 사항이 있습니다. insert()를 잠시 후에 확인하겠습니다. –

+0

이것은 삽입물의 반환 이미지입니다. 그것은 나를 위해 잘 보인다 : http://s10.postimg.org/jxmkfwvqh/fail2.png –

+0

나는 당신에게 코드를 시도, 잘 작동! 확인 : KEY_ID + "=?" , 당신은 올바른 key_id를 선택했습니다. –

관련 문제