我正在创建一个带有高分表的安卓游戏,目前数据库中的分数不会被视为数字,因此它们没有以正确的顺序显示。
这是我的数据库创建方式
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_NAME + " TEXT NOT NULL, " +
KEY_SCORE + " NUM);");
这是我返回分数的方法
public String getScore() {
String[] score = new String[]{ KEY_SCORE };
Cursor c = scoreDb.query(DATABASE_TABLE, score, null, null, null, null, KEY_SCORE+" DESC");
String scoreResult = "";
int iRow2 = c.getColumnIndex(KEY_SCORE); //Cursor looking for column setting equal to these ints.
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
//Move to first row - where cursor starts and moves to next row as long it is not after last row.
scoreResult = scoreResult + c.getString(iRow2) + "\n";
//Returning value of row that it is currently on.
}
return scoreResult; //returning result
}
我看到有人使用“长”变量类型来执行此操作..但无法让它工作!如果有人可以帮助或有任何资源可以帮助我,那将是伟大的!
答案 0 :(得分:0)
嗯,你说:
目前,数据库中的分数不会被视为数字,因此它们没有以正确的顺序显示。
这似乎是个错误。如果分数确实是数字,那么您正在开发的游戏数据库应该将它们存储为数字。如果你这样做,你会有更少的麻烦。
如果您更正了数据,则order by desc
应该有效。
修改强>
这就是我的观点,我不知道如何纠正它! - Carla Dessi
好吧,你甚至没有提到你正在使用的DBMS。现在基于dbms支持数据类型create table
的{{1}}语句。为什么不存储INTEGER
而不是KEY_SCORE
?