【问题标题】:android sqlite getting data from database randomlyandroid sqlite 随机从数据库中获取数据
【发布时间】:2014-06-30 23:06:14
【问题描述】:

我的数据库包含问题,每个问题都有三个选项。一切正常,但是当我尝试随机获取问题和选项时,它给了我错误:

我发现了与我的问题类似的问题,但也没有用,

这是我的代码:

public List<Test> getTest() {
List<Test> MyList = new ArrayList<Test>();

myDB=this.getReadableDatabase();
Cursor cursor = myDB.rawQuery("SELECT  * FROM " + My_Table + "ORDER BY RANDOM() LIMIT 1", null);

if (cursor.moveToFirst()) {
do {
Test newQ = new Test();
newQ .setId(cursor.getInt(0));
newQ .setTest(cursor.getString(1));
newQ .setAns(cursor.getString(2));
newQ .setO1(cursor.getString(3));
newQ .setO2(cursor.getString(4));
newQ .setO3(cursor.getString(5));
MyList .add(newQ );
} while (cursor.moveToNext());
}
return MyList ;}

当我将此行添加到我的代码中时:

ORDER BY RANDOM() 限制 1

该活动将不起作用。

【问题讨论】:

    标签: android sqlite random


    【解决方案1】:

    您还需要将 SQL 的 ORDER BY 部分引用为 Java 字符串文字:

    "SELECT  * FROM " + My_Table + " ORDER BY RANDOM() LIMIT 1"
    

    【讨论】:

    • 我试过了,但是没用,我没有从 eclipse 中得到这个错误 我在模拟器中运行应用程序时得到了这个错误
    • 通过编辑问题随时解释“不起作用”对您意味着什么。
    • 在编辑的问题中,您忘记了表名和ORDER之间的空格
    • 我的代码工作正常,我可以从 sqlite 数据库中获取数据,但是当我添加此代码“ORDER BY RANDOM() LIMIT 1”时,我从模拟器中收到错误,我不知道为什么。
    • ... 如果出现“强制关闭”错误,请将其包含在问题中:在 logcat 中查找红色 FATAL EXCEPTION 并复制粘贴以下堆栈跟踪,包括所有“由”例外。
    猜你喜欢
    • 2014-04-02
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    相关资源
    最近更新 更多