2012-01-17 15 views
0

사용자 로그인 응용 프로그램을 만들고 있습니다. 사용자가 레이아웃의 텍스트 뷰에 로그인 할 때 계정 정보를 표시하려고합니다. 다음은 레이아웃 이미지입니다.SQLite 데이터베이스에서 데이터 가져 오기

   String email2 = cursor.getString(cursor.getColumnIndex("email")); 
       String name2 = cursor.getString(cursor.getColumnIndex("name")); 
       String pass2 = cursor.getString(cursor.getColumnIndex("pass")); 
       String gender2 = cursor.getString(cursor.getColumnIndex("gender")); 
       String date2 = cursor.getString(cursor.getColumnIndex("date")); 
       String country2 = cursor.getString(cursor.getColumnIndex("country")); 
       String reg2 = cursor.getString(cursor.getColumnIndex("reg")); 
       data+=email2+" "+name2+" "+pass2+" "+gender2+" "+date2+" "+country2+" "+reg2+"\n" ; 
       cursor.moveToNext(); 
      } 

그것은 널 포인터를주고 : 여기

public Cursor getUserData(String username){ 
    Cursor UserDataCursor = getReadableDatabase().rawQuery(
      "SELECT * FROM " + USER_TABLE_NAME + " WHERE " + 
      USER_NAME + "='" + username+"'", null); 
    return UserDataCursor; 

해당 클래스와 데이터를 검색하기위한 코드입니다 : 그는에 로그인 할 때 다음

enter image description here는 사용자의 데이터를 가져 오는 내 코드입니다 예외. 여기서 뭐가 문제 야? 어떻게 해결할 수 있습니까?

+0

커서를 사용했습니다. cursor = dbopen.getUserData (username); 주어진 코드의 맨 위에. –

+2

그것은 여러 가지 일 수 있습니다. Logcat에서받은 오류를 게시하여 어디서 볼지 찾아야합니다. – dymmeh

+0

커서 란 무엇입니까? 그 코드도 게시하십시오. cursor.getString ("email"); 이거 한번 해봤 니? – kosa

답변

0

나는 데이터베이스 어댑터 패턴을 사용하지 않음으로써 훨씬 더 힘들게 생각한다고 생각합니다.

은 데이터베이스에 대한 더 많은 추상화와 오류 처리를 설정하는 방법의 예를 들면 여기를보세요 : 당신의 코드를 확인하기가 어렵 http://www.devx.com/wireless/Article/40842/1954

,이 데이터에 의존 때문이다. 열 이름이 잘못되었거나 누락되었을 수 있습니다. 데이터 유형이 잘못되었을 수 있습니다. 확인할 필요가있는 행이없는 커서가 다시 생길 수 있습니다.

그런데 시작하기 전에 cursor.moveToFirst()를하고 있습니까?

또한 줄 번호가 게시에서 손실되기 때문에 오류가 발생한 줄 70에 무엇이 있는지 알 수 없습니다.

관련 문제