2013-05-20 2 views
0

5 개의 텍스트 필드의 정보를 기반으로 데이터베이스에 정보를 저장하는 응용 프로그램이 있습니다. 난 필드를 정렬하거나 하나의 필드에서 정렬하는 데 어려움을 겪고 있습니다. 또한 ORDER BY 절은 어떤 메소드로 들어갈 수 있습니까? 데이터베이스의 코드 조각은 다음과 같습니다 :SQLite 데이터베이스를 어떻게 검색하거나 정렬합니까?

public static final String MYDATABASE_NAME = "MY_DATABASE"; 
public static final String MYDATABASE_TABLE = "MY_TABLE"; 
public static final int MYDATABASE_VERSION = 1; 
public static final String KEY_CONTENT = "Content"; 

public static final String lastName = "lastName"; 
public static final String firstName = "firstName"; 
public static final String school = "school"; 
public static final String email = "email"; 
public static final String intrest = "intrest"; 




     Cursor d = sqLiteDatabase.rawQuery("SELECT * from " + MYDATABASE_TABLE + "ORDER BY " + lastName + " ASC" , null); 
      while (d.moveToNext()) { 
       int sort = d.getColumnIndex(lastName); 
       int sort2 = d.getColumnIndex(intrest); 
       String lastName = d.getString(sort); 
       String intrest = d.getString(sort2); 
       System.out.println("GOT STUDENT " + lastName + " LIKES " + intrest); 
      } 
+0

내 아래에 답을 확인하시기 바랍니다. 귀하의 코드에서 일부 코드를 편집했습니다. 그것을 확인하십시오. – Maulik

답변

0

봅니다 (cursor.getCount은()> 0) 방법 (! 커서 = NULL) 상태 코드에서 사용자가 데이터를 가져 여부를 확인하는 데 사용할 수 있습니다. 아래에 나와 있습니다. 완벽에 대한 쿼리에 Log를 사용하고 sqlite 데이터베이스에 해당 쿼리를 넣어 올바르게 작동하는지 여부를 확인하십시오.

Cursor d = sqLiteDatabase.rawQuery("SELECT * from " + MYDATABASE_TABLE + " ORDER BY " + lastName + " ASC" , null); // here I have edited space before ORDER BY word starts. Please note this 
Log.d("query",">>>>"+SELECT * from " + MYDATABASE_TABLE + " ORDER BY " + lastName + " ASC"); // check this query is going to right way or not using local database. 
if(d != null){ 
    if(d.getCount() > 0){ // to check you get one or more data 
     d.moveToFirst();  
     do{ 
       int sort = d.getColumnIndex(lastName); 
       int sort2 = d.getColumnIndex(intrest); 
       String lastName = d.getString(sort); 
       String intrest = d.getString(sort2); 
       System.out.println("GOT STUDENT " + lastName + " LIKES " + intrest); 
      } while (d.moveToNext()); 
     } 
} 

시도해보십시오. 희망이 당신을 도울 것입니다. 더 명확하기 때문에

0

나는 쿼리 방법을 더 좋아 :

public static final String MYDATABASE_NAME = "MY_DATABASE"; 
public static final String MYDATABASE_TABLE = "MY_TABLE"; 
public static final int MYDATABASE_VERSION = 1; 
public static final String KEY_CONTENT = "Content"; 

public static final String lastName = "lastName"; 
public static final String firstName = "firstName"; 
public static final String school = "school"; 
public static final String email = "email"; 
public static final String interest = "interest"; 
public final String[] columns = new String[] { 
    lastName, 
    firstName, 
    school, 
    email, 
    interest 
}; 

public void printInOrder(String column) { 
    Cursor d = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null, null, null, null, column + " ASC"); 
    while (d.moveToNext()) { 
     int sort = d.getColumnIndex(lastName); 
     int sort2 = d.getColumnIndex(interest); 
     String lastName = d.getString(sort); 
     String interest = d.getString(sort2); 
     System.out.println("GOT STUDENT " + lastName + " LIKES " + interest); 
    } 
} 
관련 문제