Android sqlite数据库sqlite数据库空_id字段

时间:2013-01-21 23:24:03

标签: android android-listview android-sqlite

我的数据库创建并填充没有任何问题。我甚至有一个自定义适配器来显示我的活动中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);

  }
  });

1 个答案:

答案 0 :(得分:3)

这是错误的:

" INTERGER PRIMARY KEY,"

这会更好:

" INTEGER PRIMARY KEY AUTOINCREMENT,"