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
没有评论:
发表评论