2011-02-02 12 views
2

私の大学の最終プロジェクトをやっていて、私は奇妙なエラーが発生しています。 のEclipseでは、すべてがOKですが、私はプログラムを実行すると、データベースアダプタプログラムがクラッシュして、この機能にアクセスしようとすると述べている:Public Cursor getAllエラーAndroid

ではなく、私はちょうどこのように置けば、プログラムが正常に実行されます。

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、' 'の前にスペースがありません。 これらの文字列を '' long、 ''に変更します。なぜなら、それらの列は '' beg_datelong ''と' 'end_datelong" 'という名前になっているからです。これは '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); 

     } 

にEclipseは、通常、データベースのクエリ文字列でエラーに拾うことはありません。

+0

これは、debbugにあります。 – Schewns

+0

ここに「Enter」と打つのが嫌いです。準備が整う前にコメントを送信してください。>< –

+0

ええ、その真のxDは答えの残りをその奇妙なエラーim freaking iこれを行うだけですxD – Schewns

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

このコードがこの質問にどのように答えているか説明できますか? – rfornal

関連する問題