【问题标题】:How do you make a Cursor object traverse down individual SQL database columns?如何使 Cursor 对象遍历各个 SQL 数据库列?
【发布时间】:2013-11-30 03:24:54
【问题描述】:

我正在使用 Android,我正在处理的是一个数据库,它存储了每行中关联的许多数据点,这些数据点按表中的列排序。我想要做的是提取整行数据并将它们分配给 ArrayList 中的元素。我正在采取的方法(这似乎使事情过于复杂)是针对整个表并尝试遍历每一列并将每一列的数据点分配给对象的一个​​变量(在 ArrayList 的元素中。

我希望我能够通过每一行并将数据(整数、字符串、双精度数)分配给 ArrayList 的特定元素中的对象变量,然后当我继续下一行时,开始将相关数据输入到列表的新元素中。 这是我所拥有的:

public Cursor getAssignments() {
    return getReadableDatabase().query(false, ASSIGNMENT_TABLE, COLUMN_TITLES, 
            null, null, null, null, " ORDER BY "+ASSIGNMENT_COLUMN_NAME, null);
}

public ArrayList<Inputted> getListOfAssignments () {
    Cursor c = getAssignments();
    ArrayList<Inputted> assignList = new ArrayList<Inputted>();
    //must return assignList... but how to traverse?!
}

【问题讨论】:

    标签: java android sql arraylist


    【解决方案1】:

    您将使用here 列出的这些方法,但我希望这些是您正在寻找的方法。首先,获取列数。然后你可以迭代列...

    int     getColumnCount()
        Return total number of columns
    String  getColumnName(int columnIndex)
        Returns the column name at the given zero-based column index.
    int     getType(int columnIndex)
        Returns data type of the given column's value.
    String  getString(int columnIndex)
        Returns the value of the requested column as a String. 
        (The other types are available and documented at the above link)
    

    【讨论】:

    • 我问的是如何在迭代中使用这些方法,以及如何进行迭代。
    • for (int i = 1; i &lt;= getColumnCount(); i++)
    • 谢谢,我得到了列名迭代,但我希望将存储在不同行中的列下的元素进行迭代,无论是跨行(最好)还是沿列向下。
    • 首先迭代所有列。然后如果boolean moveToNext(),再做一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多