【问题标题】:How to get a score table to read as numbers instead of characters (android)如何让分数表读取为数字而不是字符(android)
【发布时间】:2012-02-25 17:03:42
【问题描述】:

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

这就是我的数据库的创建方式

        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
}

我看到有人使用“Long”变量类型来执行此操作..但无法让它工作!如果有人可以提供帮助或有任何资源可以帮助我,那就太好了!

【问题讨论】:

    标签: android sql char long-integer


    【解决方案1】:

    嗯,你说:

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

    这似乎是一个错误。如果分数真的是数字,那么您正在开发的游戏数据库应该将它们存储为数字。如果你这样做,你的头痛就会减少。

    如果您更正数据,order by desc 应该可以工作。

    编辑:

    这就是我的意思,我不知道如何纠正它! ——卡拉·德西

    好吧,您甚至没有提到您使用的是什么 DBMS。现在根据您的create table 声明,dbms 支持数据类型INTEGER。为什么不存储KEY_SCORE 而不是NUM

    【讨论】:

    • 我用整数尝试过它并没有什么不同..它有点顺序,但出现像 9,8,5,3,2,1,19,15,11 ,0,-1 等等..
    猜你喜欢
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    相关资源
    最近更新 更多