0

行を含むリストビューの作成に取り組んでおり、これらの行の値はデータベースに保存されている情報を表示します。私の質問は、「列_idが存在しません」というエラーをどのように修正するのですか? オンラインで調べたところ、as を使用して列 '_id' を定義することになっていることがわかりましたが、実行すると失敗しました。何かが足りないのかもしれませんが、いくつかの異なるアプローチを試した後でも、そのエラーが発生します。何か案は?

私のクエリを定義するメソッドは次のとおりです。

    String sql = "create table " + TABLE + "(" + C_ID + " int primary key, " +
    C_WORKOUT_NAME + " text, " + C_CLASSNAME + " text, " + C_CREATED_AT + " text)";

    db.execSQL(sql);

データベースの値を行に渡すコードは次のとおりです。

@Override
protected void onResume(){
    super.onResume();

    cursor = db.query(DBHelper1.TABLE, null, null, null, null, null, 
    DBHelper1.C_CREATED_AT + " DESC");
    startManagingCursor(cursor);

    adapter = new SimpleCursorAdapter(this, R.layout.row, cursor, FROM, TO);
    list.setAdapter(adapter);
}

私も持っています

    static final string C_ID= "_id"

08-10 19:47:52.176: INFO/ActivityManager(67): 開始: 意図 {cmp=edu.njit.hss/.History} from pid 440 08-10 19:47:52.596: DEBUG/AndroidRuntime(440): VM のシャットダウン 08-10 19:47:52.596: WARN/dalvikvm(440): threadid=1: キャッチされない例外で終了するスレッド (group=0x40015560) 08-10 19:47:52.626: エラー/AndroidRuntime(440): FATAL例外: メイン 08-10 19:47:52.626: エラー/AndroidRuntime(440): java.lang.RuntimeException: アクティビティを再開できません {edu.njit.hss/edu.njit.hss.History}: java.lang.IllegalArgumentException : 列 '_id' が存在しません 08-10 19:47:52.626: エラー/AndroidRuntime(440): android.app.ActivityThread.performResumeActivity(ActivityThread.java:2095) 08-10 19:47:52.626: エラー/ AndroidRuntime (440): android.app.ActivityThread.handleResumeActivity (ActivityThread.java:2110) 08-10 19:47:52.626:エラー/AndroidRuntime (440): android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1643) で

4

1 に答える 1

0

個人的には、あなたを助けるためにもう少し情報が必要です. このエラーが正確に発生するのはいつですか?表示されたコードにその列に対する要求がない場合、列が存在しないとどのように言うことができますか? (他の部分だと思います)

出発点として、DB を確認することをお勧めします。

  • ルート化されたデバイスがない場合は、エミュレーターでアプリを実行します
  • DDMS からファイルをプル - ファイル ツリーに移動し、/data/data/your.app.package/databases/yourDatabaseName に移動します。
  • sqlite ブラウザー (Lita、SQLiteDBBrowser) で開き、外観を確認し、必要な場合はここで情報を更新します。

...ここで待っています:)

于 2012-08-10T21:51:26.523 に答える