0

这是我尝试运行我的应用程序时遇到的错误

android中的非法参数异常:列_id不存在

   public static final String OBJ_ID="_id";

数据库的创建如下:

 private static final String CREATE_TAB1= "create table " + TABLE_1 + " (" + OBJ_ID + " integer primary key                                     
    autoincrement, " + OBJ_NAME + " text not null, " + DESC1 + " text not null, " + DESC2 + " text not null);"; 

尝试使用 databasehandler 中的以下函数检索数据:

     public Cursor getAllTable1() {
                return db.query(TABLE_1, 
                                new String[] { OBJ_NAME }, 
                                null, null, null, null, null);
              }

这是我与数据库通信的功能

    public class List_View extends ListActivity {



public void onCreate(Bundle icicle)
{
    super.onCreate(icicle); 
    setContentView(R.layout.displayitems); 

     Databasehelp db = new Databasehelp(this);
    db.open();


    Cursor cursor = db.getAllTable1();

     startManagingCursor(cursor); 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
           R.layout.list_example_entry, cursor, 
           new String[] {"name"}, 
           new int[] {R.id.name_entry }); 
    setListAdapter(adapter);
}
}

虽然我的数据库架构由名为 _id 的列组成。我把它改成了 _ID 但似乎没有用。谁能帮我解决这个问题?

4

1 回答 1

0

将 Cursor 绑定到 ListView(Spinner 等)时必须选择列。_id

所以添加这样的_id列:

public Cursor getAllTable1() {
    return db.query(TABLE_1, 
            new String[] { OBJ_ID, OBJ_NAME }, 
            null, null, null, null, null);
}
于 2012-06-19T18:42:06.157 回答