简体   繁体   中英

android.database.sqlite.SQLiteException: near “;”: syntax error (code 1)

it say that something is wrong with createTable string,

My database class....

class DataBase extends SQLiteOpenHelper{
            private final static String createTable="CREATE TABLE "+Keys.Database.TableName+
                    "("+Keys.Database._Id+" INTEGER PRIMARY KEY AUTOINCREMENT, "
                    +Keys.Database.Date+" TEXT(50), "
                    +Keys.Database.Type+" TEXT(50), "
                    +Keys.Database.City+" TEXT(100);";
            private final static String dropTable = "DROP TABLE IF EXISTS"+Keys.Database.TableName+";";

            private DataBase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
                super(context, name, factory, version);
            }

            private DataBase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
                super(context, name, factory, version, errorHandler);
            }


            @Override
            public void onCreate(SQLiteDatabase db) {

                    db.execSQL(createTable);

            }

            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                db.execSQL(dropTable);
                onCreate(db);
            }
        }

and here is some piece of code from where i'm trying to create table

public void writeHistory(String date, String type, String city){
        database = new DataBase(context,Keys.Database.DataBaseName,null,Keys.Database.Version);
        SQLiteDatabase sqLiteDatabase = database.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Keys.Database.Date,date);
        contentValues.put(Keys.Database.Type,type);
        contentValues.put(Keys.Database.City, city);
        long i=sqLiteDatabase.insert(Keys.Database.TableName,null,contentValues);
        if (i<0){
            Toast.makeText(MyApplication.getMyAppContext(),"History insertion FAILED",Toast.LENGTH_LONG).show();
        }
        else {
            Toast.makeText(MyApplication.getMyAppContext(),"History insertion SUCCESSFUL",Toast.LENGTH_LONG).show();
        }
    }

I'm getting that error while creating the table, please help... thanks in advance..

oops found it... :p

private final static String createTable="CREATE TABLE "+Keys.Database.TableName+
                    "("+Keys.Database._Id+" INTEGER PRIMARY KEY AUTOINCREMENT, "
                    +Keys.Database.Date+" TEXT(50), "
                    +Keys.Database.Type+" TEXT(50), "
                    +Keys.Database.City+" TEXT(100));";

it was just a stupid bracket..

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM