2016-07-22 112 views
0

即時搜索約2小時(谷歌,YouTube和這裏)什麼是做錯了,但不知道它是什麼。即時得到這個錯誤日誌當試圖在android studio中創建一個sqlite表時得到語法錯誤

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cage.roll.midleprojectfinal/com.cage.roll.midleprojectfinal.MainActivity}: android.database.sqlite.SQLiteException: near ")": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS tblmovies(movieId INTEGER PRIMARY KEY AUTOINCREMENT,movieName VARCHAR,movieSummery VARCHAR,imageURL VARCHAR,); 

Caused by: android.database.sqlite.SQLiteException: near ")": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS tblmovies(movieId INTEGER PRIMARY KEY AUTOINCREMENT,movieName VARCHAR,movieSummery VARCHAR,imageURL VARCHAR,); 

,從我迄今發現我沒有使用任何sqlite的保留字,並在創建表空間是確定....這是我的代碼:

public class MoviesOpenHelper extends SQLiteOpenHelper { 
SQLiteDatabase database; 
//DB properties 
public static final String DATABASENAME="movies.db"; 
public static final String TABLE_MOVIES="tblmovies"; 
public static final int DATABASEVERSION=1; 

//DB members in static mode to gain access to all APP classes 
public static final String COLUMN_ID="movieId"; 
public static final String COLUMN_MOVIENAME="movieName"; 
public static final String COLUMN_MOVIESUMMERY="movieSummery"; 
public static final String COLUMN_IMAGEURL="imageURL"; 

//Creating the DB table 
private static final String CREATE_TABLE_MOVIES =" CREATE TABLE IF NOT EXISTS " + TABLE_MOVIES + " (" 
     + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
     + COLUMN_MOVIENAME + " VARCHAR," 
     + COLUMN_MOVIESUMMERY + " VARCHAR," 
     + COLUMN_IMAGEURL + " VARCHAR," + ");"; 

public MoviesOpenHelper (Context context) { 
    super(context, DATABASENAME, null, DATABASEVERSION); 

} 
//this wiil create the DB in the name "MOVIES" 
@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(CREATE_TABLE_MOVIES); 
    Log.e("data", "Table movies created"); 
} 

//updates the new DB 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_MOVIES); 
    onCreate(db); 

} 

}

回答

1

CREATE TABLE IF NOT EXISTS tblmovies(movieId INTEGER PRIMARY KEY AUTOINCREMENT,movieName VARCHAR,movieSummery VARCHAR,imageURL VARCHAR,);

這是因爲最後VARCHAR關鍵字後面的尾隨逗號......

+0

感謝,但我delted,但STI這個錯誤會導致我:android.database.sqlite.SQLiteException:near「)」:語法錯誤(代碼1):編譯時:CREATE TABLE IF NOT EXISTS tblmovies(movieId INTEGER PRIMARY KEY AUTOINCREMENT,movieName VARCHAR,movieSummery VARCHAR,imageURL VARCHAR,); – rollcage

+0

@rollcage你沒有刪除它:VARCHAR,imageURL VARCHAR **,**); –

+0

嗯好吧,我看到即使我將CREATE TABLE IF NOT EXISTS更改爲CREATE TABLE。它仍然會在日誌中顯示相同的錯誤....生病重新啓動和工作室... – rollcage