2012-04-11 2 views
2

나는 안드로이드 (SQLite)에서 데이터베이스 테이블을 성공적으로 만들었습니다. 이름이나 성 (오름차순/내림차순)에 따라 데이터베이스의 요소를 정렬하려고합니다. (이 목적을 위해 컨텍스트 메뉴에 단추가 있습니다). 나는 SQL 문을 쓰는 데 문제가있다. 어떤 생각?데이터베이스의 요소 정렬

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); 


    } 

답변

3

나는 혼란스러워하고 있다고 생각합니다. 데이터베이스에 저장되는 방식을 제어 할 수 없습니다. 걱정할 필요가있는 것은 데이터베이스에서 데이터를 얻는 방법뿐입니다. order by 절을 사용해야합니다 (기본적으로 사용자가 지정한 열에서 Asc입니다).

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

나는 ORDER BY 키워드를 찾고 있다고 생각합니다. 여기에 대한 자세한 설명을 확인할 수있는 것들 :

ORDER BY @ w3schools.com

당신은 이런 식으로 뭔가를 할 수
+0

감사합니다. –

5

,이 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); 

을 확인, 당신은 당신이 원하는 행을 설정 orde by를 추가하면 ASC 또는 DESC 문자열을 추가 할 수 있습니다. 예를 들어

DatabaseHelper.NAME + " ASC"