1、错误:no such column: userName
解决:格式错误,类型TEXT前面必须有一个空格!
UserInfoEntry.COLUMN_USER_NAME + " TEXT NOT NULL, "
2、类型前面全部都添加了空格,仍旧报错:no such column: userName
解决:数据库没有更新,更新版本号。在生产应用程序中,可能会修改此方法以更改表格,而不是删除它,以便不删除现有数据。
新手学习中,尚不知道如何修改。
//如果更改数据库架构,则必须增加数据库版本 private static final int DATABASE_VERSION = 4; @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { // //在onUpgrade中,删除表(如果存在) sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + UserInfoEntry.TABLE_NAME); // //调用onCreate并传入SQLiteDatabase(传入onUpgrade)记得更新版本号 onCreate(sqLiteDatabase); }
3、错误:android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
解决:下标越界,cursor下标从-1开始,而不是0,需要移动,添加if语句。其实还是不太明白,为什么移动到第一个就可以了。
if (cursor.moveToFirst()){ queryPassword=cursor.getString(cursor.getColumnIndex(UserInfoContract.UserInfoEntry.COLUMN_USER_PASSWORD)); }