我試圖從我創建的包含英國大學信息的SQLite數據庫中讀取數據。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
任何解決此問題的幫助將非常感激。