마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

비교적 간단한거 물어봅니다. 안드로이드에서 DB SELECT문이에요,,

0 추천

 

Cursor cursor;
				String sql = "SELECT email, pass FROM member WHERE email='" + checkemail
						+ "';";
				cursor = db.rawQuery(sql, null);
                                //★여기까지는 진행이 되요!

				while (cursor.moveToNext()) {
					dbemail = cursor.getString(0);
					dbpass = cursor.getString(1);
					Log.i("LoginActivity", "1: " + dbemail + ", " + dbpass);
				}
				Log.i("LoginActivity", "2: " + dbemail + ", " + dbpass);

 

 

소스는 이러하구요

사용자한테 받은 이메일 주소 = checkemail 를 가지고

DB(member 테이블)에서 일치하는 email의 email과 pass값을 가져오고 싶습니다.

결과는 한 줄 만 나오겠죠...??ㅠㅠ

그 한줄은 

				while (cursor.moveToNext()) {
					dbemail = cursor.getString(0);
					dbpass = cursor.getString(1);
					Log.i("LoginActivity", "1: " + dbemail + ", " + dbpass);
				}

 

이 문장으로 확인이 안되나요?
LogCat창에  아무것도 안뜨고 , 라고 뜨네요...
 
다른 메소드를 써야한다면 좀 알려주세요
 
 
 
 
 
***
api를 안봤냐고 물으신다면 상처받을 것같네요
나름 핑프는 아니라고 생각하고, 사전에 검색은 하고 왔습니다(어제부터)
api도 보는데 영어실력이 부족해서 한계를 느끼고 글을 쓰는겁니다 ㅠㅠ
 

 

야도란 (1,410 포인트) 님이 2015년 1월 15일 질문
야도란님이 2015년 1월 15일 수정

2개의 답변

0 추천
 
채택된 답변
일단 위에 쿼리를 보면 SELECT 문에 ',(컴마)'가 빠진것으로 보입니다. 그리고 위에 where절을 보면 조건이 있는데 조건에 해당하는 row를 리턴했는지 카운트를 점검하세요.
세기말소년 (3,280 포인트) 님이 2015년 1월 15일 답변
야도란님이 2015년 1월 15일 채택됨
깜빡하고 여기에 수정하다가 빠졌습니다 ㅠㅠ
실제 소스에는 ,가 있어요! 위의 소스의 ★까지는 진행이 됩니다 ㅠㅠ
그럼 컬럼의 인덱스는 dbname이 정말 0번이고 pass가 1번이 맞나요?
cursor.getString(cursor.getColumIndex(email)) 이런식으로 사용 권장드리구요..
이것도 원인이 아니라면 while 수행하기 전에 cursor.moveToFirst()를 수행하고 돌리세요.

물론 해당 조건에 row가 1이상 이라는 걸 확인하고 나서요.

위에 질문글 보면 에러 없이 , 만 출력된다는 걸로 봐서는 공백 데이터가 찍히는 거 같거든요
엉엉.....문제가요
이메일을 '123@gmail.com'을 입력하면
db에 저장될 때는 123@gmail.com '
com뒤에 공백이 붙나봐요...이거 왜이러죠..?공백 때문에 안되는 거였습니다 ㅠㅠ
insert 를 수행하는 rawQuery에 공백이 포함되어 있는지 점검 해보셔야 겠네요. 아니면 trim()을 하시는 것도 방법입니다.
감사합니다! 지금부터 trim()을 알아보아야겠네요ㅎㅎ
0 추천

SELECT email pass FROM

 

-> email 과 pass 사이에 콤마가 빠진것 같네요;

SELECT email , pass FROM

루틴 (2,360 포인트) 님이 2015년 1월 15일 답변
아! 여기에만 빠뜨렸네요 ㅠㅠ소스에는 , 가 있습니다 ㅠㅠ죄송해요
email , pass 가 String 으로 정의 되어있나요?

db에선 text로 했구요
받은거 다 string으로 넘겼어요!
...