Android studio SQLite数据库出错记录

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));
}

 

 

你可能感兴趣的:(Android,studio,SQLite,Error)