我的数据库创建并填充没有任何问题。我甚至有一个自定义适配器来显示我的活动中listviews中的行。 问题是我的_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);
}
});
答案 0 :(得分:3)
这是错误的:
" INTERGER PRIMARY KEY,"
这会更好:
" INTEGER PRIMARY KEY AUTOINCREMENT,"