2016-07-22 110 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