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