0

私のデータベースは問題なく作成および入力されます。アクティビティのリストビューに行を表示するためのカスタム アダプターもあります。問題は、_id 列に実際には ID がないことです。listItemClick でダイアログボックスが表示され、データがテキストボックスに入れられます。下部にボタンがあります。ユーザーがそのレコードを削除できるように、「削除」ボタンを機能させようとしています。_id を呼び出しているレコードを削除しようとしていますが、データベースの ID 列はすべてのレコードで空です。ダイアログ ボックスに各項目の ID 番号が表示され、それらはすべて 0 として表示されます。sqlite データベース ブラウザでデータベースを開くと、すべてのレコードの id 列が完全に空になります。誰でも助けて、これがなぜなのか教えてもらえますか? これは私が使用したチュートリアルです: http://android-er.blogspot.co.uk/2011/06/edit-row-in-sqlite-database-using.html

いくつかのコード:

データベースとテーブルの作成:

     public static final String KEY_ID = "_id";
     public static final String KEY_LESSON = "Lesson";
     public static final String KEY_DAY = "Day";
     public static final String KEY_START = "Start";
     public static final String KEY_END = "End";
     public static final String KEY_LOCATION = "Location";

     private SQLiteDatabase db;
     private DBHelper dbHelper;
     private final Context context;

     private static final String DATABASE_CREATE = "create table Schedule" + " (" + KEY_ID + " INTERGER PRIMARY KEY," 
     + KEY_LESSON + " text not null, " + KEY_DAY + " text not null," + KEY_START + " text not null, " + KEY_END 

public void deleteEntry(int id) {

  db.delete(DATABASE_TABLE, KEY_ID + "=" +id, null);

 }

ダイアログ:

      myDialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface arg0, int arg1) {

      db.open();
  db.deleteEntry(item_id);

  }
  });
4

1 に答える 1

3

これは間違っています:

" INTERGER PRIMARY KEY,"

これはより良いでしょう:

" INTEGER PRIMARY KEY AUTOINCREMENT,"
于 2013-01-21T23:27:19.677 に答える