你的所有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