你的所有3周創建表的語句是錯誤的:
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(" CREATE TABLE " + DATABASE_TABLESTUDY + " (" +
KEY_ROWSTUDYID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYCODE + " TEXT UNIQUE NOT NULL, " +
KEY_STUDYNAME + " TEXT " + // Missing comma!
KEY_STUDANALYST + " TEXT " + // Missing comma!
KEY_STUDYPHOTO + " BLOB);"
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEELEMENTS + " (" +
KEY_ROWELEMENTID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_STUDYID+") REFERENCES "+DATABASE_TABLESTUDY+" ("+KEY_ROWSTUDYID+"), " +
KEY_ELEMENTCODE + " TEXT UNIQUE NOT NULL, " +
KEY_ELEMENTNAME + " TEXT " + // Missing comma!
KEY_ELEMENTPHOTO + " BLOB);"
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEDATA + " (" +
KEY_ROWDATATID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_ELEMENTID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_ELEMENTID+") REFERENCES " + DATABASE_TABLEELEMENTS + " ("+KEY_ROWELEMENTID+"), " +
KEY_DATEDATA + " TEXT NOT NULL, " +
KEY_TIMEDATA + " TEXT NOT NULL, " +
KEY_ACTIVITYDATA + " TEXT NOT NULL, " +
KEY_HOURDATA + " TEXT NOT NULL,);" // Extra comma!
);
他們應該是:
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(" CREATE TABLE " + DATABASE_TABLESTUDY + " (" +
KEY_ROWSTUDYID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYCODE + " TEXT UNIQUE NOT NULL, " +
KEY_STUDYNAME + " TEXT, " +
KEY_STUDANALYST + " TEXT, " +
KEY_STUDYPHOTO + " BLOB);"
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEELEMENTS + " (" +
KEY_ROWELEMENTID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_STUDYID+") REFERENCES "+DATABASE_TABLESTUDY+" ("+KEY_ROWSTUDYID+"), " +
KEY_ELEMENTCODE + " TEXT UNIQUE NOT NULL, " +
KEY_ELEMENTNAME + " TEXT, " +
KEY_ELEMENTPHOTO + " BLOB);"
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEDATA + " (" +
KEY_ROWDATATID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_ELEMENTID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_ELEMENTID+") REFERENCES " + DATABASE_TABLEELEMENTS + " ("+KEY_ROWELEMENTID+"), " +
KEY_DATEDATA + " TEXT NOT NULL, " +
KEY_TIMEDATA + " TEXT NOT NULL, " +
KEY_ACTIVITYDATA + " TEXT NOT NULL, " +
KEY_HOURDATA + " TEXT NOT NULL);"
);
[編輯]
我更新了我的答案,以反映最新的更改:
你創建表的語句中有兩個是仍然是錯的(末尾額外逗號):
db.execSQL(" CREATE TABLE " + DATABASE_TABLEELEMENTS + " (" +
KEY_ROWELEMENTID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_STUDYID+") REFERENCES "+DATABASE_TABLESTUDY+" ("+KEY_ROWSTUDYID+"), " +
KEY_ELEMENTCODE + " TEXT UNIQUE NOT NULL, " +
KEY_ELEMENTNAME + " TEXT, " +
KEY_ELEMENTPHOTO + " BLOB,);" // Extra comma!
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEDATA + " (" +
KEY_ROWDATATID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_ELEMENTID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_ELEMENTID+") REFERENCES " + DATABASE_TABLEELEMENTS + " ("+KEY_ROWELEMENTID+"), " +
KEY_DATEDATA + " TEXT NOT NULL, " +
KEY_TIMEDATA + " TEXT NOT NULL, " +
KEY_ACTIVITYDATA + " TEXT NOT NULL, " +
KEY_HOURDATA + " TEXT NOT NULL,);" // Extra comma!
);
他們應該是:
db.execSQL(" CREATE TABLE " + DATABASE_TABLEELEMENTS + " (" +
KEY_ROWELEMENTID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_STUDYID+") REFERENCES "+DATABASE_TABLESTUDY+" ("+KEY_ROWSTUDYID+"), " +
KEY_ELEMENTCODE + " TEXT UNIQUE NOT NULL, " +
KEY_ELEMENTNAME + " TEXT, " +
KEY_ELEMENTPHOTO + " BLOB);"
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEDATA + " (" +
KEY_ROWDATATID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_ELEMENTID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_ELEMENTID+") REFERENCES " + DATABASE_TABLEELEMENTS + " ("+KEY_ROWELEMENTID+"), " +
KEY_DATEDATA + " TEXT NOT NULL, " +
KEY_TIMEDATA + " TEXT NOT NULL, " +
KEY_ACTIVITYDATA + " TEXT NOT NULL, " +
KEY_HOURDATA + " TEXT NOT NULL);"
);
你可以發佈LogCat錯誤 – MDMalik