【问题标题】:SQLite Cursor returning the value for one column as the value for all columnsSQLite 游标返回一列的值作为所有列的值
【发布时间】: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 namerank_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


    【解决方案1】:

    我怀疑当您导入 CSV 文件时,它无法正常工作。也许您没有指定分隔符,SQLite 为您创建了一个只有一列的表。或者它奇怪地填充了表格,而您的 SQL 适配器以一种令人惊讶的方式“提供帮助”。例如,如果您的 CSV 文件有一些空格,则可能会发生这种情况。

    我将使用 SQLite shell 来验证 Glassgow 行是否按预期出现在数据库中。这至少可以让您区分 SQLite 问题和 Java 库问题(如果有)。

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多