2012-09-05 2 views
0

이름과 기호가 두 개인 테이블이 있습니다. 내가 원하는 것은 이름에 해당하는 상징을 얻는 것뿐입니다. 나는이 방법을 사용한다. 그것은 아무것도 반환하지 않는 종류입니다. 이것 좀보세요. 대신 비교하면서 c.getString (여기서 iname) == 이름을 사용sqlite android에서 데이터를 가져 오는 중 문제가 발생했습니다.

public String getSymbol(String name) { 
    String Symbol = ""; 
    String[] columns = new String[] { "name", "symbol" }; 
    Cursor c = getReadableDatabase().query(DATABASE_TABLE_NAME, columns, null, 
      null, null, null, null); 

    int iName = c.getColumnIndex("name"); 
    int iSymbol = c.getColumnIndex("symbol"); 

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 

     if (c.getString(iName) == name) { 
      Symbol = Symbol + c.getString(iSymbol); 
     } 

    } 
    return Symbol; 

} 

답변

1

이 기능을보십시오.

public String getSymbol(String name) 
    { 
     try 
     { 
      String Symbol = ""; 
      Cursor c = db.query(DATABASE_TABLE_NAME, columns, "name = ?" , new String[] {name}, null, null, null); 
      if(c.getCount != 0) 
      { 
       c.moveToFirst(); 
       Symbol = String.valueOf(c.getString(c.getColumnIndex("symbol"))); 
       c.close(); 
       return Symbol; 
      } 

     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
+0

고마워요! 코드는이 줄을 제외하고는 잘 작동합니다. Symbol = String.valueOf (c.getColumnIndex ("symbol")); 실제로 그것은 Symbol = String.valueOf가되어야합니다 (c.getString (c.getColumnIndex ("symbol")))); 그렇지 않으면 인덱스 "1"을 리턴합니다. – darsh

+0

내 코드에서 무엇이 잘못되었는지 설명해 주시겠습니까? 그냥 물건을 알아 내려고. – darsh

+1

모든 데이터를 가져 와서 모든 데이터와 비교하려고합니다. 그 좋은 생각이 아니야. –

0

, c.getString (여기서 iname) .equalsIgnoreCase (이름)를 사용

관련 문제