选择语句的SQLite Android Logcat错误

时间:2014-02-23 19:48:38

标签: android sqlite android-sqlite

02-23 20:16:17.499:E / AndroidRuntime(25817):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.makkosarka / com.example.makkosarka.Table.Table}: java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.makkosarka / com.example.makkosarka.Table.Liga1}:java.lang.IllegalArgumentException:列'_id'不存在

以下是尝试从此表中选择记录而不是显示的方法 在listview中

    private void populateListFromDB(){
        Cursor cursor = myDB.getAllRows("1");
        startManagingCursor(cursor);


        String[] columnFromTable = new String[]
    {DBadapter.KEY_HOSTID, DBadapter.GUESTID, DBadapter.KEY_HSCORE , DBadapter.KEY_GSCORE };


 int[] toLayoutFild = new int[] {R.id.txtview_name, R.id.txtview_gameno, R.id.txtview_won, R.id.txtview_lost, };

SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this, R.layout.rowlayout,
cursor, columnFromTable, toLayoutFild);

ListView mylistview = (ListView) findViewById(R.id.listview_table);
mylistview.setAdapter(myCursorAdapter);
}

这是在Adapter类中,我甚至没有选择“_id”(KEY_ROWID)列

  public static final String[] ALL_COLUMNS = new String[] {KEY_HOSTID, KEY_GUESTID,
 KEY_HSCORE, KEY_GSCORE};
    public Cursor getAllRows(String league) {
    Cursor c = db.query(true, DUELS_TABLE, ALL_COLUMNS, 
                        null, null, null, null, null, null);
      if (c != null) {
     c.moveToFirst();
        }
      return c;
     }

该错误意味着该表可能根本没有创建吗? 我有两个表,我使用相同的方法为另一个完美的工作选择记录,但为此,它显示了此问题顶部列出的错误

1 个答案:

答案 0 :(得分:1)

  

这是在Adapter类中,我甚至没有选择“_id”(KEY_ROWID)列

CursorAdapter及其子类要求 Cursor有一个名为_id的列。如果您有自己的,请使用自己的,或者切换到rawQuery(),以便在列表列表中包含ROWID AS _id以便返回。