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 回答