0
我想在Android中的一個數據庫中創建兩個表。但是我仍然有一個錯誤,不知道該怎麼做。Android中的兩個表(SQLite)
這裏是我DbHelper類
private static final String DB_NAME="DBbudik";
private static final int DB_VER = 2;
//public static final String IDevent = "IDevent";
//Tabulka pre poznámky
public static final String DB_TABLE="Task";
public static final String DB_COLUMN = "TaskName";
//Tabulka pre udalosti
public static final String DB_TABLE2="DayEvent";
public static final String DB_COLUMN1="DayEventName";
public static final String DB_COLUMN2="DayEventPlace";
public static final String DB_COLUMN3="DayEventTime";
public static final String DB_COLUMN4="DayEventDate";
public static final String DB_COLUMN5="DayEventNote";
public DbHelper(Context context) {
super(context, DB_NAME, null, DB_VER);
}
@Override
public void onCreate(SQLiteDatabase db) {
String query = String.format("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT,%s TEXT NOT NULL);",DB_TABLE,DB_COLUMN);
String query2 = String.format("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT, %s TEXT NOT NULL, %s TEXT NOT NULL, %s TEXT NOT NULL, %s TEXT NOT NULL, %s TEXT NOT NULL);",DB_TABLE2,DB_COLUMN1,DB_COLUMN2,DB_COLUMN3,DB_COLUMN4,DB_COLUMN5);
db.execSQL(query);
db.execSQL(query2);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query = String.format("DELETE TABLE IF EXISTS %s",DB_TABLE);
String query2 = String.format("DELETE TABLE IF EXISTS %s",DB_TABLE2);
db.execSQL(query);
db.execSQL(query2);
onCreate(db);
}
此錯誤是顯示出來並指向行50:
FATAL EXCEPTION: main
Process: studiodoublek.budik, PID: 16327
java.lang.RuntimeException: Unable to start activity ComponentInfo{studiodoublek.budik/studiodoublek.budik.Java.kalendar}: android.database.sqlite.SQLiteException: near "TABLE": syntax error (code 1): , while compiling: DELETE TABLE IF EXISTS Task
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2464)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
android.app.ActivityThread.access$900(ActivityThread.java:154)
aandroid.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.database.sqlite.SQLiteException: near "TABLE": syntax error (code 1): , while compiling: DELETE TABLE IF EXISTS Task
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:893)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:504)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605)
at studiodoublek.budik.Helper.DbHelper.onUpgrade(DbHelper.java:50)
,它顯示的錯誤。這是第50行
db.execSQL(query);
感謝它現在工作:) – erikkockar
如果您的問題解決了,您可以投票 –