我正在尝试将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
任何人都知道解决这个问题的方法。期待合理的帮助。谢谢。
答案 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