我试图在Android应用中创建一个SQLite数据库,但我的应用不断崩溃,LogCat出现以下错误:
FATAL EXCEPTION: main
Process: com.zebra.leadcapture, PID: 15427
android.database.sqlite.SQLiteException: table lead_capture_database has no column named EntryNumber (code 1): , while compiling: INSERT INTO lead_capture_database(EntryNumber,BarcodeData,Notes) VALUES('0','','');
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(table lead_capture_database has no column named EntryNumber (code 1): , while compiling: INSERT INTO lead_capture_database(EntryNumber,BarcodeData,Notes) VALUES('0','','');)
以下是我使用的代码:
public void addNewEntry(String barcodeDataString, String notesString) {
leadDatabase = openOrCreateDatabase(database_name,MODE_PRIVATE,null);
String create_string = "CREATE TABLE IF NOT EXISTS " + database_name
+ "(EntryNumber TEXT,BarcodeData TEXT,Notes TEXT);";
String insert_string = "INSERT INTO " + database_name + "(EntryNumber,BarcodeData,Notes) VALUES('" + entryCount + "','" + barcodeDataString + "','" + notesString + "');";
leadDatabase.execSQL(create_string);
leadDatabase.execSQL(insert_string);
entryCount++;
}
为什么不将EntryNumber识别为列?
答案 0 :(得分:0)
在上面的评论中已经回答了这个问题,但是为了将来参考:我从我的设备中删除了该应用,并通过Android Studio重新安装了该应用,修复了该问题。我以前一直在用没有该列但具有相同名称的SQLite数据库编写应用程序。我想改变我正在使用的字符串会产生相同的效果。
答案 1 :(得分:0)
您在创建表后添加了该列。在这种情况下,该列不会添加到数据库中。如果您删除表并重新创建它,它将解决您的问题,而无需卸载该应用程序。您也可以创建一种迁移方法。