我正在使用以下代码在我的数据库中添加一个新表:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE" + QRCODE_LINK + "(" +
"ID" + "INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "Title" + "text,"
+ "HISTORY" + " text not null);" );
}
但是,每当我插入数据时都会收到错误,因为根据日志,表格不存在。当我创建桌子时,我错过了什么吗?
这是日志:
10-17 13:56:55.362: ERROR/Database(6791): Error inserting inhistory=1 qr_url=data1
10-17 13:56:55.362: ERROR/Database(6791): android.database.sqlite.SQLiteException: no such table: qrcode_link: , while compiling: INSERT INTO qrcode_link(inhistory, qr_url) VALUES(?, ?);
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1123)
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1509)
10-17 13:56:55.362: ERROR/Database(6791): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1382)
答案 0 :(得分:3)
创建表
后它们没有空格答案 1 :(得分:0)
在告诉它是整数还是文本之前,你需要添加一些间距。
您History
列中的内容是正确的,但您实际拥有的ID
列IDINTEGER
以及Title
列Titletext
列中的@Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE" + QRCODE_LINK + "(" +
"ID" + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "Title" + " text,"
+ "HISTORY" + " text not null);" ); }
<。 / p>
"CREATE TABLE " + QRCODE_LINK + "("
希望这是有道理的:)
修改强>
好的,再次阅读代码。创建表{{1}}等时需要间距。
正如Agriesean所说的那样。但如果没有其他更正,您将无法获得正确的列。