0

我在资产文件夹中导入了一个数据库。当我调用 nextQuestion() 方法时,我需要从数据库中检索第一个条目。用户回答后,我需要再次加载 nextQuestion() 方法并从数据库中检索下一个条目。我试过了,但没有用,我总是只得到第一个条目:

String sql ="SELECT * FROM tblTable ORDER BY _ID ASC LIMIT 1";

也试过这个:

String sql ="SELECT * FROM tblTable ORDER BY _ID ASC";
4

5 回答 5

0

->String sql ="SELECT * FROM tblTable ORDER BY _ID ASC";只执行一次,
-> 将数据保存在 ArrayCollection 中
-> 创建全局变量 whichQuestion:Number; // 保留你所在的问题
-> 创建一个类似的方法

  nextQuestion(whichQuestion:Number):String //pass which question you want to ask
{
  return questionCollection[i];
} 

-> 然后 whichQuestion +=1;
-> 最后,当你需要问题时,只需调用 nextQuestion() 方法

于 2013-04-16T08:10:28.317 回答
0

当然你总是只得到第一个,你一遍又一遍地执行相同的查询。如果数据不是很大,请使用第二个查询。只执行一次并将所有行存储在内存中。然后,您的nextQuestion()方法不再需要进行数据库查询。

于 2013-04-16T00:57:26.553 回答
0

我相信你需要使用你的第二个查询一次,捕获Resultset然后直接使用 first, next,previous等遍历它,或者在一个循环中加载它ArrayList并使用它的方法。

于 2013-04-16T00:58:53.863 回答
0

虽然效率不高,但您可以使用以下查询来获取下一个问题:

SELECT * 
FROM 
(
    SELECT * 
    FROM 
        questions 
    ORDER BY ID ASC LIMIT :questionNumber
) ORDER BY ID DESC LIMIT 1

:questionNumber第 n 个感兴趣的问题在哪里。

例如:http ://sqlfiddle.com/#!7/a20b8/4

于 2013-04-16T01:00:46.630 回答
0

您真正想要的是最小 ID 仍然大于您之前的 ID 的问题:

SELECT *
FROM tblTable
WHERE _ID > ?    -- insert previous ID here
ORDER BY _ID
LIMIT 1
于 2013-04-16T07:43:21.897 回答