如何从下到上检索SQLite数据库表值(最后一行到第一行)

时间:2012-05-05 18:44:30

标签: sqlite blackberry gridview cursor

我正在尝试将sqlite表的元素检索到黑莓中的网格上。 这是我的代码:

  Statement statement56 = db.createStatement("SELECT date,bill,rec,narration,id FROM Temp4");
  statement56.prepare();
  statement56.execute();

  Cursor c = statement56.getCursor();

  for (int i = 1; i < grid.getRowCount(); i++)
  {
      System.out.println("Inside first for loops");
      for (int j = 0; j < grid.getColumnCount() ; j++)
      {
          System.out.println("Inside second for loops");

          while(c.next()) 
          {

              System.out.println("Inside while"); 
              Row r;
              r = c.getRow();



              for (int k = 4; k >=0; k--)
              {
                  System.out.println("Inside for loops");
                  if(k==0 || k==3)
                  {
                      System.out.println("Retrieving date or narration");
                      grid.insert(new LabelField(r.getString(k)),i,j);
                  }  
                  else
                  {
                      System.out.println("Retrieving other values"); 
                      //  String p = r.getString(k)
                      String p = "" + r.getInteger(k);
                      grid.insert(new LabelField(p),i,j);
                  }                           
              } 

              // c.previous();
              //c--;
              System.out.println("Exiting while");                        
          }

          System.out.println("Exiting sec for");
          break;
      }
      System.out.println("Exiting first for");

      break;
   }

   statement56.close(); 
   db.close();

这是以自下而上的方式给我的sqlite表的值。我想要的方式与在sqlite表中插入的方式完全相同。

即如果我的表包含

a b c d e
f g h i j
k l m n o
p q r s t
u v w x y

我在黑莓的网格布局中获得的输出是

u v w x y
p q r s t
k l m n o
f g h i j 
a b c d e

任何人都知道解决这个问题的方法。期待合理的帮助。谢谢。

2 个答案:

答案 0 :(得分:3)

只需在SQL查询中添加ORDER BY

SELECT date,bill,rec,narration,id FROM Temp4 ORDER BY id DESC

如果更合适,您可以使用其他排序字段而不是id

如果您没有要排序的字段,则可以使用伪字段ROWID。此字段可用作任何SQLite表中的自动增量字段:

SELECT date,bill,rec,narration,id FROM Temp4 ORDER BY ROWID DESC

答案 1 :(得分:0)

如果您有以下行:

Id Name
1  Row1
2  Row2
3  Row3

使用ORDER BY CLAUSE可以得到如下结果:

Id Name
3  Row3
2  Row2
1  Row1

在您的情况下,您可以使用以下查询:

SELECT date,bill,rec,narration,id FROM Temp4 ORDER BY id DESC