【发布时间】:2016-08-18 21:38:58
【问题描述】:
我正在尝试从我创建的包含英国大学信息的 SQLite 数据库中读取数据。
该表有以下列:
Institution
Rank_2017
Guardian_score100
Satisfied_with_course
Satisfied_with_teaching
Satisfied_with_feedback
Student_to_staff_ratio
Average_entry_tariff
Career_after_6_months
我已经从 CSV 文件中填充了表格,然后尝试调用 getUni() 方法,该方法将返回每列中的信息,并使用它们来构建 University 对象,但是当我检查University 的每个成员变量的值,名称和等级都已正确设置,但之后的每个变量也已设置为 Rank_2017 的值。
getUni() 方法
public University getUni(String id)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_UNIVERSITIES, COLUMNS, " Institution = ?",
new String[] { id }, null, null, null, null);
if(cursor != null){
cursor.moveToFirst();
}
System.out.println("@@@" + cursor.getCount() + "@@@");
University uni = new University();
if(cursor != null){
uni.setUni_name(cursor.getString(0));
uni.setRank(cursor.getString(1));
uni.setGuardianScore(cursor.getString(2));
uni.setCourseSatisfaction(cursor.getString(3));
uni.setTeachingSatisfaction(cursor.getString(4));
uni.setFeedbackSatisfaction(cursor.getString(5));
uni.setStudentStaffRatio(cursor.getString(6));
uni.setAverageEntryTariff(cursor.getString(7));
uni.setCareerAfterSixMonths(cursor.getString(8));
}
// return University
return uni;
}
在调用cursor.getColumnCount() 之后,我可以看到它按预期返回了 10 列,但是有些地方不太正确。
例如,如果我调用 University uni = getUni("Glasgow"); ,它将正确分配 University name 和 rank_2017,但之后分配每个成员变量与 rank_2017 相同。
CSV 行示例:
Glasgow,26,70.8,89.3,91.6,67.3,14.5,478.4,78.5
任何解决此问题的帮助将不胜感激。
【问题讨论】:
标签: java android sqlite csv cursor