2012-05-25 5 views
0

내 응용 프로그램의 다른 부분에서 사용될 공용 문자열을 만들려고합니다. 필자는 커서의 사용을 검토하려고 시도했지만 필자가 원하는 것을 반환하는 방법을 찾을 수 없었습니다. RowId = 1 인 열 전자 메일의 값을 반환하는 public 메서드가 필요합니다.Public String from SQLite

내가 벗어난 기준으로부터 얼마나 멀리 떨어져 있고 어떤 점을 알려주십시오.

public String getUserName(String email) { 
    String email = null; 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor c = db.rawQuery("SELECT _email FROM login WHERE key_id = 1;", null); 
    if(c.moveToFirst()) 
     email = c.getString(0); 
    c.close(); 

    return email; 
} 

하지만 당신의 방법 서명이 조금 이상한 :이 방법을 사용하면 다음과 같이 커서를 사용할 필요가

public String getUserName(String email) { 

    SQLiteDatabase db = this.getReadableDatabase(); 
    String memail = 
      db.rawQuery("SELECT _email FROM login WHERE key_id = 1;", null); 
    return memail; 
} 
+0

모양 "public Cursor rawQuery (String sql, String [] selectionArgs) 도입 된 버전 : API Lev el 1 제공된 SQL을 실행하고 결과 세트에 대해 커서를 리턴합니다. 매개 변수 sql SQL 쿼리. ** SQL 문자열은 없어야합니다. 종료 ** ", [참조] (http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html) –

답변

1

사용 :

   if(c.getCount() == 0) 
       {     
       //No entry found 
       } 
       else { 
        c.moveToFirst(); 
        do { 
         String mail = c.getString(c.getColumnIndex("email")); 
         } while (c.moveToNext());    
      c.close(); 

이 방법을 사용하여 문자열 메일의 값 :

을 반환 :

String q = "SELECT * FROM login where(key_id = 1)"; 
Cursor c = db.rawQuery(q, null); // db is a object of SQLiteDatabase type 

는 다음과 같은 값 열 이메일를 검색

+0

위대한 작품. 감사. – KDEx

0

DatabaseHandler 클래스 안에 있습니다. 귀하의 방법은 입니다. getUserName은 입력 매개 변수가 전자 메일 및 반송 이메일을 말합니다. 커서의

+0

당신이 옳다는 것이 내 실수예요. 많은 시도 후에 여기가 어두워집니다. – KDEx

+0

@Waqas는 "public Cursor rawQuery (String sql, String [] selectionArgs) 을 사용합니다. API 레벨 1 제공된 SQL을 실행하고 결과 세트에 대해 커서를 리턴합니다. 매개 변수 SQL SQL 쿼리입니다. ** SQL 문자열은 없어야합니다. 종료 ** ", [참조] (http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html). 왜 내가 대답 [여기]에 downvoted되었습니다 혼란 스러워요 (http://stackoverflow.com/questions/10743660/database-help-needed/10744228#comment13967847_10744228) ** query() ** –

+0

대신 ** rawQuery() ** 메소드를 사용하는 이유는 다운 투표 한 이유입니다 내 대답은? @ KDEx가 쿼리 대신 rawQuery를 사용하려는 경우 아무 문제가 없습니다. 내 목표는 커서를 사용하는 방법을 알려주는 것입니다. – waqaslam