2014-11-25 1 views
0

코딩하는 데 문제가 있습니다. 나는 이클립스와 sqlite 전문가 개인 데이터베이스를 사용하고 있습니다.sqlite 전문가 개인으로 전송할 때 변경된 열의 이름

이것은 mydatabaseadapter에 대한 나의 코드입니다.

public class MyDatabaseAdapter { 

public static final String DATABASE_NAME = "Surah"; 
public static final String DATABASE_TABLE_SURAH = "surah"; 
public static final String DATABASE_TABLE_COUNT = "count"; 
private static final int DATABASE_VERSION = 1; 

// surah related columns  
public static final String SURAH_NAME ="surah_name";  
public static final String NO_OF_VERSE = "no_of_verse"; 
public static final String SURAH_ID ="surah_id"; 


// count related colums 
public static final String VERSE_NAME = "verse_name"; 
public static final String COUNT = "count"; 
public static final String HIGHEST_VERSE_ID = "highest_verse_id"; 


private static final String TAG = "MyDatabaseAdapter"; 


/** 
* Database creation sql statement 
*/ 
private static final String DATABASE_CREATE_SURAH = 
    "create table IF NOT EXISTS " + DATABASE_TABLE_SURAH + " (" + SURAH_ID + " integer primary key, " 
    + SURAH_NAME + " TEXT not null," + NO_OF_VERSE + " INTEGER not null," + HIGHEST_VERSE_ID + 
    " INTEGER REFERENCES COUNT(HIGHEST_VERSE_ID));"; 

private static final String DATABASE_CREATE_COUNT = 
     "create table IF NOT EXISTS " + DATABASE_TABLE_COUNT + " (" + SURAH_ID + " integer REFERENCES SURAH(SURAH_ID), " 
     + VERSE_NAME + " TEXT not null," + COUNT + " INTEGER not null," + HIGHEST_VERSE_ID + 
     " INTEGER PRIMARY KEY NOT NULL);"; 


// Context of the Activity that is using this database 

private final Context mCtx; 
private DatabaseHelper mDbHelper; 
private SQLiteDatabase mDb; 

public MyDatabaseAdapter(Context ctx) { 
    this.mCtx = ctx; 
} 


public MyDatabaseAdapter open() throws SQLException { 
    mDbHelper = new DatabaseHelper(mCtx); 
    mDb = mDbHelper.getWritableDatabase(); 
    return this; 
} 
// Database helper class 
private static class DatabaseHelper extends SQLiteOpenHelper { 

    DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase mDb) { 
     mDb.execSQL(DATABASE_CREATE_SURAH); 
     mDb.execSQL(DATABASE_CREATE_COUNT); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase mDb, int oldVersion, int newVersion) { 
     if (newVersion > oldVersion) 
     { 
      Log.w(TAG, "Upgrading database from version " + oldVersion + " to " 
        + newVersion + ", which will destroy all old data"); 
      mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_SURAH); 
      mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_COUNT); 
      onCreate(mDb); 
     } 
     else 
     { 
      mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_SURAH); 
      mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_COUNT); 

     } 
    } 
} 


public void updatecount(String c) 
{ 
    mDb = mDbHelper.getWritableDatabase(); 
    ContentValues cv = new ContentValues(); 
    cv.put(COUNT, c); 
    String[] whereArgs ={null}; 
    mDb.update(DATABASE_TABLE_COUNT, cv, "HIGHEST_VERSE_ID =? ", whereArgs);  

} 



/** 
* Close database 
*/ 
public void close() { 
    mDbHelper.close(); 
} 


public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 

} 

은}

그리고 내 문제는 로그 캣 내가 더 카운트 열이 없다라고! 난 SQLite는 전문으로 개인 DDM을 행 데이터베이스 정보 데이터/데이터/데이터베이스/장을 전송할 때

기발한 countinteger에 카운트 변화로 명명 된 열 로그 캣

11-25 13:41:42.213: E/SQLiteLog(16293): (1) no such column: count 
11-25 13:41:42.223: D/AndroidRuntime(16293): Shutting down VM 
11-25 13:41:42.223: W/dalvikvm(16293): threadid=1: thread exiting with uncaught exception (group=0xb1a30ba8) 
11-25 13:41:42.323: D/dalvikvm(16293): GC_FOR_ALLOC freed 28K, 3% free 4507K/4612K, paused 55ms, total 59ms 
11-25 13:41:42.333: E/AndroidRuntime(16293): FATAL EXCEPTION: main 
11-25 13:41:42.333: E/AndroidRuntime(16293): Process: com.aino.hafazan, PID: 16293 
11-25 13:41:42.333: E/AndroidRuntime(16293): android.database.sqlite.SQLiteException: no such column: count (code 1): , while compiling: UPDATE count SET count=? WHERE HIGHEST_VERSE_ID =? 
11-25 13:41:42.333: E/AndroidRuntime(16293): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 

의 에러이다. 나는 그것이 왜 countinteger bcs로 변경되었는지 전혀 모른다. mydatabaseadapter에 count로 설정했다. Pls 날 도와 줘요.

... COUNT + " INTEGER not null," ... 

그러나 테이블이 처음 생성되었을 때 공간이 아마 없었다 : 당신이 있어야 할 공간이 같은

+0

프로젝트를 정리하고 생성 테이블'count' 문자열에'count'와 키워드'integer' 사이에 공백이 있는지 확인하십시오. 그 String을 확실하게 기록하십시오. –

답변

1

는 것 같습니다. 테이블/클리어 애플리케이션 데이터를 삭제하고 다시 시도해야 할 수도 있습니다.

관련 문제