Android 数据库排序取决于整数?

Android 数据库排序取决于整数?,android,sqlite,sorting,Android,Sqlite,Sorting,在我的数据库中有一些行,每行有三列的sid、名称、移动和时间。我想根据移动对行进行排序,这是整数值 我像这样试过,但不走运 public Cursor fetchAllNotes() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES); } 像这样使用 private

在我的数据库中有一些行,每行有三列的sid、名称、移动和时间。我想根据移动对行进行排序,这是整数值

我像这样试过,但不走运

public Cursor fetchAllNotes() {
    return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, 
         KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES);
}
像这样使用

private void getallrows()  {
    // get all the contacts..
    db.open();
    Cursor c = db.fetchAllNotes();       
    if (c.moveToFirst())   {        
       do {
          Sorting(c);
       } while (c.moveToNext());
    }
    db.close();
}
我有15,45,21,11,10,75,33个动作
我想要像这样的10,11,15,21,33,45,75

为什么不以这样的方式进行查询,从而返回排序后的数据本身??? 请尝试此查询:

挑选* 从数据库_表 按键排序\u移动ASC

db.queryDATABASE_表,新字符串[]{KEY_ROWID,KEY_NAME, 按键移动,按键时间},空,空,空,空,空,按键移动+ASC


希望你能得到它…

为什么你不以这样一种方式进行查询,即返回排序后的数据本身??? 请尝试此查询:

挑选* 从数据库_表 按键排序\u移动ASC

db.queryDATABASE_表,新字符串[]{KEY_ROWID,KEY_NAME, 按键移动,按键时间},空,空,空,空,空,按键移动+ASC

希望你得到它…

试试这个-

return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, 
         KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES + " ASC");

编辑-1:

如果要显示名称,可以这样使用

private void getall()
{ 
        db.open(); 
        Cursor c = db.fetchAllNotes();
        int i=1; 
        if (c.moveToFirst())
        {               
            do
            {
                DisplayContact(c.getString(c.getColumnIndex(KEY_NAME))); 
                i++;
            } while (c.moveToNext()); 
        } 
        db.close(); 
}
试试这个-

return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, 
         KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES + " ASC");

编辑-1:

如果要显示名称,可以这样使用

private void getall()
{ 
        db.open(); 
        Cursor c = db.fetchAllNotes();
        int i=1; 
        if (c.moveToFirst())
        {               
            do
            {
                DisplayContact(c.getString(c.getColumnIndex(KEY_NAME))); 
                i++;
            } while (c.moveToNext()); 
        } 
        db.close(); 
}


我是android新手,我不懂你的意思,请解释一下,如何装箱。翻译:与其尝试用Java排序,不如尝试利用SQLite检索你想要的列上已经排序的数据。按部分查看顺序。不是从数据库中获取所有记录,而是以这样一种方式获取记录,即提供已排序的记录本身,我编写的查询提供已排序的数据。这是返回db.querySELECT*from database_TABLE order by KEY_MOVES ASC的格式吗;是的,@Richa编写的是一个格式化的查询和您的问题的解决方案。我是android新手,我不懂。请解释一下,如何装箱。翻译:与其尝试用Java进行排序,不如尝试利用SQLite并检索您想要的列上已排序的数据。按部分查看顺序。不是从数据库中获取所有记录,而是以这样一种方式获取记录,即提供已排序的记录本身,我编写的查询提供已排序的数据。这是返回db.querySELECT*from database_TABLE order by KEY_MOVES ASC的格式吗;是的,@Richa编写的是一个格式化的查询和您问题的解决方案。我按照u所说的进行更改,并在这里调用这个函数private void getall{db.open;db.fetchAllNotes;Cursor c=db.getAllContacts;if c.moveToFirst{do{dislayContactc;}while c.moveToNext;在显示之前它不是按顺序显示的。}db.close;}不按升序排序。10,10,12,4,6,64首先,请用正确的格式写代码。在这里,您可能在显示值时遇到问题,因为您的fetchAllNotes返回的游标对象在代码中没有捕捉到。我认为,您不清楚要使用哪种方法。不管它是什么,您只需要更改查询的最后一个参数,就像我在回答中提到的那样,以对其进行排序。我使用的是像这样的私有void getall{db.open;Cursor c=db.SortAllRows;int i=1;如果c.moveToFirst{do{DisplayContactc,i++;}而c.moveToNext;}db.close;}我按照您所说的更改,并在此处调用此函数private void getall{db.open;db.fetchAllNotes;Cursor c=db.getAllContacts;if c.moveToFirst{do{dislayContactc;}while c.moveToNext;在显示之前它不按顺序显示。}db.close;}排序不按升序。10,10,12,4,6,64首先,请用正确的格式写代码。在这里,您可能在显示值时遇到问题,因为您的fetchAllNotes返回的游标对象在代码中没有捕捉到。我认为,您不清楚要使用哪种方法。不管它是什么,您只需要更改查询的最后一个参数,就像我在回答中提到的那样,以对其进行排序。我使用的是如下私有void getall{db.open;Cursor c=db.SortAllRows;int i=1;如果c.moveToFirst{do{DisplayContactc,i++;}而c.moveToNext;}db.close;}