Java SQLiteException:没有这样的列:用户名(android studio)

Java SQLiteException:没有这样的列:用户名(android studio),java,android,sqlite,android-sqlite,Java,Android,Sqlite,Android Sqlite,我不知道,我试图重拍整部电影,但还是有问题 有人能帮我解决吗 它表明: SQLiteException:没有这样的列:username public class DbHelper extends SQLiteOpenHelper { public static final String TAG = DbHelper.class.getSimpleName(); public static final String DB_NAME = "myapp.db"; public

我不知道,我试图重拍整部电影,但还是有问题 有人能帮我解决吗 它表明: SQLiteException:没有这样的列:username

public class DbHelper extends SQLiteOpenHelper {

    public static final String TAG = DbHelper.class.getSimpleName();
    public static final String DB_NAME = "myapp.db";
    public static final int DB_VERSION = 1;

    public static final String USER_TABLE = "users";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_USERNAME = "username";
    public static final String COLUMN_PASS = "password";

    /*
    create table users(
        id integer primary key autoincrement,
        email text,
        password text);
     */
    public static final String CREATE_TABLE_USERS = "CREATE TABLE " + USER_TABLE + "("
            + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COLUMN_USERNAME + " TEXT, "
            + COLUMN_PASS + " TEXT);";

    public DbHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_USERS);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + USER_TABLE);
        onCreate(db);
    }

    /**
     * Storing user details in database
     * */
    public void addUser(String username, String password) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(COLUMN_USERNAME, username);
        values.put(COLUMN_PASS, password);

        long id = db.insert(USER_TABLE, null, values);
        db.close();

        Log.d(TAG, "user inserted" + id);
    }

    public boolean getUser(String username, String pass){
        //HashMap<String, String> user = new HashMap<String, String>();
        String selectQuery = "select * from  " + USER_TABLE + " where " +
                COLUMN_USERNAME + " = " + "'"+username+"'" + " and " + COLUMN_PASS + " = " + "'"+pass+"'";

        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        // Move to first row
        cursor.moveToFirst();
        if (cursor.getCount() > 0) {

            return true;
        }
        cursor.close();
        db.close();

        return false;
    }
}
错误日志:

FATAL EXCEPTION: main
    Process: pixelfotress.musicplayer, PID: 2538
    android.database.sqlite.SQLiteException: no such column: username (code 1): , while compiling: select * from  users where username =?  and password = ?
  at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
  at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
  at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
  at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
  at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
  at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
  at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
  at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
  at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1257)
  at pixelfotress.musicplayer.DbHelper.getUser(DbHelper.java:68)
  at pixelfotress.musicplayer.LoginActivity.login(LoginActivity.java:54)
  at pixelfotress.musicplayer.LoginActivity.onClick(LoginActivity.java:40)
  at android.view.View.performClick(View.java:5610)
  at android.view.View$PerformClick.run(View.java:22265)
  at android.os.Handler.handleCallback(Handler.java:751)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:154)
  at android.app.ActivityThread.main(ActivityThread.java:6077)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
改变这个

 String selectQuery = "select * from  " + USER_TABLE + " where " +
        COLUMN_USERNAME + " = " + "'"+username+"'" + " and " + COLUMN_PASS + " = " + "'"+pass+"'";
对此

 Cursor c = db.rawQuery("select * from  " + USER_TABLE + " where "+COLUMN_USERNAME + " =? "+ " and " + COLUMN_PASS + " = ?" , new String[]{username,pass});

我从不喜欢看到创建和删除表的JDBC代码。当应用程序启动时,我使用的Java应用程序已准备就绪。用户不操纵模式。我建议反对这种设计。为什么这样可以解决问题呢?aditya desai我尝试了你的代码,但在我注册并尝试登录应用程序后,强制关闭了它。你可以发布错误日志吗?aditya desai我已经更新了帖子。你可以看一下吗?好的,我找到了错误,我尝试更改了数据库版本,然后它对我有效thx for不管怎样,帮助阿迪蒂亚·德赛