У меня проблема с базой данных в Android Kotlin.каждый раз, когда я пытался использовать его, он всегда говорил, что такой таблицы нет.но я сделал таблицу.
это мой помощник по открытию базы данных
class MyDatabaseOpenHelper(ctx: Context) : ManagedSQLiteOpenHelper(ctx, "FavoriteTeam.db", null, 1) {
companion object {
private var instance: MyDatabaseOpenHelper? = null
@Synchronized
fun getInstance(ctx: Context): MyDatabaseOpenHelper {
if (instance == null) {
instance = MyDatabaseOpenHelper(ctx.applicationContext)
}
return instance as MyDatabaseOpenHelper
}
}
override fun onCreate(db: SQLiteDatabase?) {
// Here you create tables
db?.createTable(FavoriteTeam.TABLE_TEAM, true,
FavoriteTeam.ID to INTEGER + PRIMARY_KEY + AUTOINCREMENT,
FavoriteTeam.TEAM_ID to TEXT + UNIQUE,
FavoriteTeam.TEAM_NAME to TEXT,
FavoriteTeam.TEAM_BADGE to TEXT)
db?.createTable(Favorite.TABLE_FAVORITE, true,
Favorite.ID to INTEGER + PRIMARY_KEY + AUTOINCREMENT,
Favorite.EVENT_ID to TEXT + UNIQUE,
Favorite.HOME_ID to TEXT + UNIQUE,
Favorite.AWAY_ID to TEXT + UNIQUE,
Favorite.TEAM_HOME to TEXT,
Favorite.TEAM_AWAY to TEXT,
Favorite.TEAM_HOME_SCORE to TEXT,
Favorite.TEAM_AWAY_SCORE to TEXT,
Favorite.DATE to TEXT)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// Here you can upgrade tables, as usual
db.dropTable(Favorite.TABLE_FAVORITE, true)
db.dropTable(FavoriteTeam.TABLE_TEAM, true)
}
}
// Access property for Context
val Context.database: MyDatabaseOpenHelper
get() = MyDatabaseOpenHelper.getInstance(applicationContext)
это мои данные для базы данных
data class FavoriteTeam(val id: Long?, val teamId: String?, val teamName: String?, val teamBadge: String?) {
companion object {
const val TABLE_TEAM: String = "TABLE_TEAM"
const val ID: String = "ID_"
const val TEAM_ID: String = "TEAM_ID"
const val TEAM_NAME: String = "TEAM_NAME"
const val TEAM_BADGE: String = "TEAM_BADGE"
}
}
и это где я называю это
private fun favoriteState() {
database.use {
val result = select(FavoriteTeam.TABLE_TEAM)
.whereArgs("(TEAM_ID = {id})",
"id" to idTeam)
val favorite = result.parseList(classParser<FavoriteTeam>())
if (!favorite.isEmpty()) isFavorite = true
}
}
, и это всегда показывает эту ошибку no such table: TABLE_TEAM (code 1): , while compiling: SELECT * FROM TABLE_TEAM WHERE (TEAM_ID = '133604')
Я не знаю почему.когда я хочу создать таблицу TABLE_FAVORITE
, она работает хорошо, но когда я хочу создать TABLE_TEAM
, она всегда показывает, какую ошибку я хочу вставить или выбрать.Пожалуйста, помогите мне, если вы знаете.спасибо