如何将得分表读作数字而不是字符(android)

时间:2012-02-25 17:03:42

标签: android sql char long-integer

我正在创建一个带有高分表的安卓游戏,目前数据库中的分数不会被视为数字,因此它们没有以正确的顺序显示。

这是我的数据库创建方式

        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
}

我看到有人使用“长”变量类型来执行此操作..但无法让它工作!如果有人可以帮助或有任何资源可以帮助我,那将是伟大的!

1 个答案:

答案 0 :(得分:0)

嗯,你说:

  

目前,数据库中的分数不会被视为数字,因此它们没有以正确的顺序显示。

这似乎是个错误。如果分数确实是数字,那么您正在开发的游戏数据库应该将它们存储为数字。如果你这样做,你会有更少的麻烦。

如果您更正了数据,则order by desc应该有效。

修改

  

这就是我的观点,我不知道如何纠正它! - Carla Dessi

好吧,你甚至没有提到你正在使用的DBMS。现在基于dbms支持数据类型create table的{​​{1}}语句。为什么不存储INTEGER而不是KEY_SCORE