2012-11-12 6 views
1

나는 동일한 '이름과 번호'(둘 다 문자열로 저장되어 있음)가없는 경우 기본적으로 내 SQLite 데이터베이스에 새 항목을 만들어야하는 저장 버튼이 있습니다. 이미 이름과 번호가 같은 항목이있는 경우 덮어 쓸지 묻는 팝업이 표시됩니다.SQLite 데이터베이스를 검색하려고합니다. 안드로이드

실제로 일어나는 것은 항목이 이미 있는지 여부와 상관없이 새로운 항목을 생성하는 것입니다.

final String thename=TeamName.getText().toString() 
final String thenum=TeamNum.getText().toString(); 
if ((thename.length()!=0) && (thenum.length()!=0)){ 
    ScoutingFormData info1 = new ScoutingFormData(this); 
    info1.open(); 
    final long returnedId=info1.scanFor(thename,thenum); 
    if (returnedId==-1){ 
     info1.createEntry(thename,thenum); 
    } 
    else 
    { 
     final Dialog overw=new Dialog(this); 
     ....//The code that goes here is unimportant to my question so I'm hiding it. 
     overw.show(); 
    } 
    info1.close(); 
} 

코드를 ScoutingFormData.java에 :

public long scanFor(String thename, String thenum) { 
    String[] columns=new String[]{KEY_ROWID,KEY_NAME,KEY_NUM}; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    int iID = c.getColumnIndex(KEY_ROWID); 
    int iName = c.getColumnIndex(KEY_NAME); 
    int iNum = c.getColumnIndex(KEY_NUM); 
    for (c.moveToFirst(); !c.isAfterLast();c.moveToNext()){ 
     if ((c.getString(iName)==thename) && (c.getString(iNum)==thenum)){ 
      return Long.parseLong(c.getString(iID)); 
     } 
    } 
    return -1; 
} 

나는 그것을 가능하게 반환 할 수 방법 -1 항목이 이미 같은 이름으로 존재하는 경우 표시되지 않습니다 저장을 클릭하면 실행 코드 + 번호.

답변

4

equals을 사용하여 String 값을 비교하십시오.

+0

나는 지금 당장 자신을 때리고있다. 저는 Lua에서 정수를 비교하는 것처럼 문자열 값을 비교하는 데 익숙합니다. == – bluebl1

관련 문제