【发布时间】:2020-04-12 22:07:30
【问题描述】:
内部创建:
String createit = "create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,USERNAME TEXT,PASSWORD TEXT,RANK INTEGER,IDOFUSER LONG)";
String createit2 = "create table " + TABLE_NAMES +" (ID INTEGER PRIMARY KEY AUTOINCREMENT , USERNAME TEXT , SUBJECT TEXT , MARK INTEGER)";
String createit3 = "create table " + TABLE_NAMESS +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,SUBJECT TEXT,QTITLE TEXT,QRIGHTANSWER TEXT,QWRONGANSWER TEXT,QWRONGANSWER TEXT,QWRONGANSWER TEXT)";
String createit4 = "create table " + TABLE_NAMESSS +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,TITLE TEXT,ANSWER1 TEXT,ANSWER2 TEXT,ANSWER3 TEXT,ANSWER4 TEXT,CORRECTANSWER TEXT)";
db.execSQL(createit);
db.execSQL(createit2);
db.execSQL(createit3);
db.execSQL(createit4);
我得到这个错误:
android.database.sqlite.SQLiteException:靠近“&”:语法错误(代码1):,编译时:创建表q&a(ID INTEGER PRIMARY KEY AUTOINCREMENT,SUBJECT TEXT,QTITLE TEXT,QRIGHTANSWER TEXT,QWRONGANSWER TEXT,QWRONGANSWER文本,QWRONGANSWER 文本)
在 android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
在 android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
在 android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
在 android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
在 android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
在 android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
在 android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674)
在 android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605)
在 com.example.finalproject.DatabaseHelper.onCreate(DatabaseHelper.java:55)
在 android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
在 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
在 com.example.finalproject.DatabaseHelper.isuserexist(DatabaseHelper.java:249)
在 com.example.finalproject.MainActivity.onClick(MainActivity.java:37)
在 android.view.View.performClick(View.java:4780)
在 android.view.View$PerformClick.run(View.java:19866)
在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
如何解决?
【问题讨论】:
-
这四个
create table语句是哪一个导致了错误?您的TABLE_NAME到TABLE_NAMESSS变量中有哪些值? -
到目前为止,如果我通过这样做来阻止一个表 // 它会说明其他 3 个不是 TABLE_NAME 的表。只有一张表有东西,因为它需要它来插入更多数据。
-
这看起来像是重复的。 stackoverflow.com/questions/48306717/…
标签: sql