2012-06-12 2 views
0

SQLite 데이터베이스 및 Android 모바일 개발을 처음 사용했습니다. 편집 텍스트 필드에 입력 한 사용자 이름이 데이터베이스에 있는지 확인하려고합니다. 내가 그것을 실행하고 버튼을 클릭하면 응용 프로그램이 충돌합니다. 이것은 내 코드입니다.sqlite 데이터베이스에 값이 있는지 찾으려고 할 때 오류가 발생했습니다.

no such column: bobby: , while compiling: SELECT DISTINCT userId, username, password, secretQ, answer FROM Login WHERE username=bobby 

내가 무슨 일을하고있는 중이 야 :

public boolean findUsername(String username) { 
Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] { 
     KEY_USERID, KEY_USERNAME, KEY_PASSWORD,KEY_SECRETQ,KEY_ANSWER}, KEY_USERNAME + "=" 
     + username, null, null, null, null, null); 
    if (c != null) { 
     return true; 
     } 
     return false; 
    } 
} 

로그 고양이에서 오류가한다고?

답변

3

당신은 당신은 사용자 이름에 따옴표를 넣어 가지고이

SELECT DISTINCT userId, username, password, secretQ, answer FROM Login WHERE username='bobby' 

같은 쿼리를 형성한다.

Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] { 
     KEY_USERID, KEY_USERNAME, KEY_PASSWORD,KEY_SECRETQ,KEY_ANSWER}, KEY_USERNAME + "='" 
     + username +"'", null, null, null, null, null); 

위의 내용을 시도해보십시오.

+0

답장을 보내 주셔서 감사합니다. 지금은 잘 작동합니다 :) 한 가지 더 질문합니다. 항상 다음과 같이 테이블의 모든 열 이름을 지정해야합니까 : ourDatabase.query (true, DATABASE_TABLE_L, new String [] { KEY_USERID, KEY_USERNAME, KEY_PASSWORD, KEY_SECRETQ, KEY_ANSWER} –

+0

@Sindu_ 아니요, 필요하지 않습니다. 단일 열을 지정할 수도 있습니다. 내 대답보기 –

+0

@ChiragRaval 좋습니다. 감사합니다. –

2
Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] { 
     KEY_USERID, KEY_USERNAME, KEY_PASSWORD,KEY_SECRETQ,KEY_ANSWER}, KEY_USERNAME + "=?", 
     username, null, null, null, null); 
1

시도해보십시오.

Cursor C = ourDatabase.query(DATABASE_TABLE_L, new String[] { 
     KEY_USERID}, KEY_USERNAME + "= ?" , new String[] {username}, null, null,null); 
관련 문제