1 回答
TA贡献1777条经验 获得超3个赞
表定义创建的列名与您在插入时尝试使用的列名不同。
例如,您的表将具有列名 FNAME 而不是名字(等)。
其次,尝试使用名为“名字”的列时会遇到问题,因为它包含一个空格,并且必须括起来,例如[名字]。
我建议使用:-
public static final String NUMBER = "Number";
public static final String FNAME = "FirstName"; //<<<<<<<<<< space removed
public static final String LNAME = "LastName"; //<<<<<<<<<< space removed
public static final String COORDINATE = "Coordinate";
public static final String ADDRESS = "Address";
public static final String NOTES = "Notes";
随着:-
db.execSQL("create table if not exists " + TABLE_NAME +"(" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + NUMBER + " TEXT," + FNAME + " TEXT," + LNAME + " TEXT," + COORDINATE + " TEXT," + ADDRESS + " TEXT," + NOTES + " TEXT)");
要引入更改(即运行onCreate方法,因为它仅在创建数据库时自动运行),您必须执行以下操作之一:-
删除应用的数据。
卸载应用程序。
更改数据库版本号,例如更改为
super(context, DATABASE_NAME, null, 1);
super(context, DATABASE_NAME, null, 2);
,然后重新运行该应用程序。
添加回答
举报