2011-02-02 3 views
2

내 대학의 최종 프로젝트를 진행하고 있는데 이상한 오류가 발생합니다. 이클립스에서 는 모든 것이 괜찮라고하지만, 프로그램이 충돌 데이터베이스 어댑터에서이 기능에 액세스하려고 할 때이 프로그램을 실행할 때 : 난 그냥 같이 넣어 대신하는 경우공개 커서 getAll 오류 Android

public Cursor getAllProjectsCursor() { 
    return db.query(DATABASE_TABLE, 
        new String[] { 
          KEY_ID, 
          KEY_PROJ_NAME, 
          KEY_BEG_DATE 
        }, 
        null, 
        null, 
        null, 
        null, 
        null); 

} 

하지만, 프로그램이 정상적으로 실행 :

public Cursor getAllProjectsCursor() { 
    return db.query(DATABASE_TABLE, 
        new String[] { 
          KEY_ID, 
          KEY_PROJ_NAME 
        }, 
        null, 
        null, 
        null, 
        null, 
        null); 
} 

모든 열 값을 전달하고 싶습니다. 모든 건물이 좋다고 생각합니다. 모든 항목에서 동일합니다.

도와 주시겠습니까? 내 코드에서

INFO/Database(677): sqlite returned: error code = 1, msg = no such column: beg_date 

내가 가진 :

public class PMDBAdapter { 

    private static final String DATABASE_NAME = "PocketManager.db"; 
     private static final String DATABASE_TABLE = "Projects"; 
      private static final int DATABASE_VERSION = 1; 
      private SQLiteDatabase db; 
      public static final String KEY_ID = "_id"; 
      public static final String KEY_PROJ_NAME = "proj_name"; 
      public static final int PROJ_NAME_COLUMN = 2; 
      public static final String KEY_AREA = "proj_area"; 
      public static final int AREA_COLUMN = 3; 
      public static final String KEY_BEG_DATE = "beg_date"; 
      public static final int BEG_DATE_COLUMN = 4; 
      public static final String KEY_END_DATE = "end_date"; 
      public static final int END_DATE_COLUMN = 5; 
      public static final String KEY_PERC = "perc"; 
      public static final int PERC_COLUMN = 6; 

      private final Context context; 
      private ProjDBOpenHelper dbHelper; 

과 : 디버그에서


그것은 말한다

private static final String DATABASE_CREATE = "create table " + 
    DATABASE_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " 
      + KEY_PROJ_NAME + " text not null, " 
      + KEY_AREA + "text not null, " 
      + KEY_BEG_DATE + "long, " 
      + KEY_END_DATE + "long, " 
      + KEY_PERC + " integer);"; 
+1

충돌하는 동안 오류의'logcat' 출력을 제공 할 수 있습니까? –

+2

또한, 충돌하는 코드 부분에서'KEY_PROJ_NAME'과'KEY_BEG_DATE' 사이에 쉼표가 누락 되었습니까? –

+1

''KEY_BEG_DATE '와'KEY_END_DATE'에는''long,''앞에 공백이 없습니다. 그 문자열이''beg_datelong ''과''end_datelong "'으로 이름 지어지기 때문에 문자열을''long' '으로 변경하십시오. 그것도'KEY_AREA'의 경우처럼 보이고,'text not null,''앞에 공백을 넣으십시오! " –

답변

3

변화를

return db.query(DATABASE_TABLE, new String[] { 
        KEY_ID, 
        KEY_PROJ_NAME 
        KEY_BEG_DATE}, 
          null, 
          null, 
          null, 
          null, 
          null); 

     } 

return db.query(DATABASE_TABLE, new String[] { 
        KEY_ID, 
        KEY_PROJ_NAME, 
        KEY_BEG_DATE}, 
          null, 
          null, 
          null, 
          null, 
          null); 

     } 

에 이클립스는 일반적으로 데이터베이스 쿼리 문자열의 오류에 데리러하지 않습니다.

+0

debbug에서 확인해보세요. – Schewns

+0

당신이 준비하기 전에 여기에 'Enter'를 입력하면 코멘트가 전달되는 것을 싫어 하시는지>< –

+0

예 xDi의 진정한 xD는 나머지 답변을 그 이상한 실수로 게시했습니다. 그냥이 일을하고 싶어 xD – Schewns

-1
public Cursor getAllDataDays() { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String selectQuery = "SELECT * FROM " + TABLE_MYBUDGETWITHDAYS; 
    return db.rawQuery(selectQuery, null); 
    } 
+1

이 코드가 질문에 어떻게 대답하는지 설명해 주시겠습니까? – rfornal