2021年4月8日星期四

Getting an 'no such table' error on Android Studio

I'm getting an error on Android Studio where it is saying there is no such table 'TABLE_USERNAME' when I use the insertScore function, but there is definitely a TABLE_USERNAME table since I used it for my insertName function

Error: no such table: TABLE_USERNAME in "UPDATE TABLE_USERNAME SET KEY_SCORE = 1 WHERE KEY_NAME = Name"

import java.util.ArrayList;  import java.util.List;    import android.content.ContentValues;  import android.content.Context;  import android.database.Cursor;  import android.database.sqlite.SQLiteDatabase;  import android.database.sqlite.SQLiteOpenHelper;    public class DatabaseHandler extends SQLiteOpenHelper{      public static final String DATABASE_NAME = "usernameDatabase";      public static final String TABLE_USERNAME = "usernames";      public static final String KEY_ID = "id";      public static final String KEY_NAME = "name";      public static final String KEY_SCORE = "score";      public DatabaseHandler(Context context){          super(context, DATABASE_NAME, null, 1);      }        @Override      public void onCreate(SQLiteDatabase db) {          //Creates Table          String CREATE_USERNAME_TABLE = "CREATE TABLE " + TABLE_USERNAME + "("                  + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," + KEY_SCORE + " INTEGER)";          db.execSQL(CREATE_USERNAME_TABLE);      }        @Override      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {          db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERNAME);          onCreate(db);      }        public void insertName(String name){          SQLiteDatabase db = this.getWritableDatabase();          ContentValues values = new ContentValues();          values.put(KEY_NAME, name);            db.insert(TABLE_USERNAME, null, values);          db.close();      }        public void insertScore(Integer score, String name){          SQLiteDatabase db = this.getWritableDatabase();          ContentValues values = new ContentValues();          values.put(KEY_SCORE, score);          String strSQL = "UPDATE TABLE_USERNAME SET KEY_SCORE = " +score+ " WHERE KEY_NAME = " +name;          db.execSQL(strSQL);      }        public List<String> getAllNames(){          List<String> names = new ArrayList<String>();            String selectQuery = "SELECT * FROM " + TABLE_USERNAME;          SQLiteDatabase db = this.getReadableDatabase();          Cursor cursor = db.rawQuery(selectQuery, null);            if(cursor.moveToFirst()){              do {                  names.add(cursor.getString(1));              }while (cursor.moveToNext());          }            cursor.close();          db.close();            return names;      }  }  
https://stackoverflow.com/questions/67014207/getting-an-no-such-table-error-on-android-studio April 09, 2021 at 10:18AM

没有评论:

发表评论