2012-04-11 17 views
2

Ich habe erfolgreich eine Datenbanktabelle in Android (SQLite) erstellt. Ich versuche Elemente in der Datenbank nach dem Vor- oder Nachnamen (aufsteigend/absteigend) zu sortieren. (Zu diesem Zweck habe ich Knöpfe im Kontextmenü). Ich habe Probleme beim Schreiben der SQL-Anweisung. Irgendeine Idee?Elemente in einer Datenbank sortieren

public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.database); 

     ListView lv=(ListView)findViewById(R.id.mylist); 


     dbh = new DatabaseHelper(this); 
     c = dbh.getReadableDatabase().rawQuery("SELECT _id, " + 
      DatabaseHelper.NAME + 
    ", " + DatabaseHelper.LASTNAME + 
     ", " + DatabaseHelper.ans2 + 
         " FROM " + 
       DatabaseHelper.TABLE_NAME, null); // initializing 


      String[] dataFrom ={DatabaseHelper.NAME, DatabaseHelper.LASTNAME, DatabaseHelper.ans2}; 
      int[] dataTo = {R.id.name, R.id.value1, R.id.value2};    
      SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        R.layout.row, c, dataFrom, dataTo); 

      lv.setAdapter(adapter); 

      registerForContextMenu(lv); 


    } 

Antwort

3

Ich denke, Sie vermischen Dinge. Sie können nicht steuern, wie es in der Datenbank gespeichert ist. Alles, was Sie sich Sorgen machen müssen, wäre, wie Sie Daten aus der Datenbank erhalten möchten. Sie müssen die order by-Klausel verwenden (standardmäßig ist Asc in der Spalte angegeben, die Sie angegeben haben).

c = dbh.getReadableDatabase().rawQuery("SELECT _id, " + 
      DatabaseHelper.NAME + 
    ", " + DatabaseHelper.LASTNAME + 
     ", " + DatabaseHelper.ans2 + 
         " FROM " + 
       DatabaseHelper.TABLE_NAME ORDER BY yourColumnName, null); 
2

Ich glaube, Sie suchen nach dem ORDER BY-Schlüsselwort. Hier finden Sie eine ausführliche Beschreibung finden Sie hier:

ORDER BY @ w3schools.com

+0

danke, lassen Sie mich hineinsehen –

5

Sie etwas tun können, überprüfen Sie diese URL http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

dbh.getReadableDatabase().query(DatabaseHelper.TABLE_NAME, 
            new String[]{DatabaseHelper.NAME, 
               DatabaseHelper.LASTNAME, 
               ,DatabaseHelper.ans2},null,null,null, 
              DatabaseHelper.NAME,null); 

in der zweiten zum letzten Parameter stellen Sie die Zeile, die Sie wollen zu orde von und Sie können die Zeichenfolge ASC oder DESC zum Beispiel