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," ...
그러나 테이블이 처음 생성되었을 때 공간이 아마 없었다 : 당신이 있어야 할 공간이 같은
프로젝트를 정리하고 생성 테이블'count' 문자열에'count'와 키워드'integer' 사이에 공백이 있는지 확인하십시오. 그 String을 확실하게 기록하십시오. –