我正在尝试从名为Course的sqlite表中获取一些数据,其属性为Name。
我在这里建立了表格。
private static final String COURSE_ID = "CourseID";
private static final String COURSE_NAME = "Name";
private static final String COURSE_CODE = "CourseCode";
private static final String COURSE_ROWID = "_id";
private static final String COURSE_CREATE =
"create table " +
"Course" + " ( " +
COURSE_ROWID + " integer primary key autoincrement, " +
COURSE_ID + " integer not null,"
+ COURSE_NAME + " text not null, " +
COURSE_CODE + " text not null" + ");";
我尝试使用此功能选择我的数据。
public Cursor getCourseNames() throws SQLException {
String[] values = {COURSE_NAME};
mDb = mDbHelper.getReadableDatabase();
return mDb.query("Course",values, COURSE_ROWID + "=" + "Name", null, null, null, null, null);
}
然后在我的主要课程中,我这样执行它。
public void buildCoursetoChapterList(){
Cursor cursor = dbHelper.getCourseNames();
SimpleCursorAdapter adapter = new SimpleCursorAdapter(MainActivity.this, android.R.layout.simple_list_item_1, cursor, null, null);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(adapter);
}
我只是想抓住数据并在列表视图中输入,任何想法我做错了什么?
看起来它是合乎逻辑的Select from Course WHERE _id = "Name"
;
哦,嘟嘟我忘了我的错误...... java.lang.IllegalArgumentException:列'_id'不存在
答案 0 :(得分:0)
在您的数据库中使用"CourseID"
"_id"
如果您希望所有课程名称更改返回语句,请执行此操作。
return mDb.query("Course",values, null, null, null, null, null, null);
答案 1 :(得分:0)
将COURSE_ROWID设为“_id”
"create table " +
"Course" + " ( " +
COURSE_ROWID + " AS _id," +
COURSE_ID + " integer not null,"
+ COURSE_NAME + " text not null, " +
COURSE_CODE + " text not null" + ");";
这适用于尚未指定为“整数主键自动增量”的行ID(所有表都有行id列)。