Android如何从sqlite数据库中的列获取值

Android如何从sqlite数据库中的列获取值,android,sqlite,Android,Sqlite,我有一个名为TermTable的sqlite表,其中包含id、term和type列: 此外,我还有一个实现db的Datasource类,并有以下方法将数据放入和取出表中: public long insertTermList(String term, String type) { ContentValues initialValues = new ContentValues(); initialValues.put(WordsDB.Term, term); initi

我有一个名为TermTable的sqlite表,其中包含id、term和type列:

此外,我还有一个实现db的Datasource类,并有以下方法将数据放入和取出表中:

public long insertTermList(String term, String type) {

    ContentValues initialValues = new ContentValues();

    initialValues.put(WordsDB.Term, term);
    initialValues.put(WordsDB.Type, type);

    return db.insert(WordsDB.TermTable, null, initialValues);
}

public Cursor getTermValues(int index) {

    String from[] = { "Term", "Type" };
    String where = WordsDB.ID + "=" + index;
    Cursor cursor = db.query(true, WordsDB.TermTable, from, where, null, null, null, null, null);
    return cursor;
}
在另一个类中,我调用了insertTermList,并使用名为ds的数据源对象为值行插入了一些:

现在,我想根据给定的id从列中获取值,并将每行的每列值附加到名为text的文本视图中。我该怎么做

private void getData() {

    Cursor c = ???

    if(c != null)
    {
        c.moveToFirst();
        text.append(???);
    }
}
有什么建议吗, 首先,更改以下功能:

public Cursor getTermValues(int index) {

    String from[] = { "Term", "Type" };
    String where = WordsDB.ID + "=" + index;
    Cursor cursor = db.query(true, WordsDB.TermTable, from, where, null, null, null, null, null);
    return cursor;
}

那么

    private void getData(int id) {

        Cursor c = getTermValues(id);

        if(c != null)
        {
            while(c.moveToNext){
                String term = c.getString(c.getColumnIndex("term")));
                String type = c.getString(c.getColumnIndex("type")));


                // use these strings as you want
            }
        }
    }
如果要对所有记录进行ge,请创建一个方法:

public void getAllRecords() {

    Cursor cursor = db.query(WordsDB.TermTable, null, null, null, null, null, null, null);
    if(c != null)
            {
                while(c.moveToNext){
                    String term = c.getString(c.getColumnIndex("term")));
                    String type = c.getString(c.getColumnIndex("type")));


                    // use these strings as you want
                }
            }
}
所以, 首先,更改以下功能:

public Cursor getTermValues(int index) {

    String from[] = { "Term", "Type" };
    String where = WordsDB.ID + "=" + index;
    Cursor cursor = db.query(true, WordsDB.TermTable, from, where, null, null, null, null, null);
    return cursor;
}

那么

    private void getData(int id) {

        Cursor c = getTermValues(id);

        if(c != null)
        {
            while(c.moveToNext){
                String term = c.getString(c.getColumnIndex("term")));
                String type = c.getString(c.getColumnIndex("type")));


                // use these strings as you want
            }
        }
    }
如果要对所有记录进行ge,请创建一个方法:

public void getAllRecords() {

    Cursor cursor = db.query(WordsDB.TermTable, null, null, null, null, null, null, null);
    if(c != null)
            {
                while(c.moveToNext){
                    String term = c.getString(c.getColumnIndex("term")));
                    String type = c.getString(c.getColumnIndex("type")));


                    // use these strings as you want
                }
            }
}
所以, 首先,更改以下功能:

public Cursor getTermValues(int index) {

    String from[] = { "Term", "Type" };
    String where = WordsDB.ID + "=" + index;
    Cursor cursor = db.query(true, WordsDB.TermTable, from, where, null, null, null, null, null);
    return cursor;
}

那么

    private void getData(int id) {

        Cursor c = getTermValues(id);

        if(c != null)
        {
            while(c.moveToNext){
                String term = c.getString(c.getColumnIndex("term")));
                String type = c.getString(c.getColumnIndex("type")));


                // use these strings as you want
            }
        }
    }
如果要对所有记录进行ge,请创建一个方法:

public void getAllRecords() {

    Cursor cursor = db.query(WordsDB.TermTable, null, null, null, null, null, null, null);
    if(c != null)
            {
                while(c.moveToNext){
                    String term = c.getString(c.getColumnIndex("term")));
                    String type = c.getString(c.getColumnIndex("type")));


                    // use these strings as you want
                }
            }
}
所以, 首先,更改以下功能:

public Cursor getTermValues(int index) {

    String from[] = { "Term", "Type" };
    String where = WordsDB.ID + "=" + index;
    Cursor cursor = db.query(true, WordsDB.TermTable, from, where, null, null, null, null, null);
    return cursor;
}

那么

    private void getData(int id) {

        Cursor c = getTermValues(id);

        if(c != null)
        {
            while(c.moveToNext){
                String term = c.getString(c.getColumnIndex("term")));
                String type = c.getString(c.getColumnIndex("type")));


                // use these strings as you want
            }
        }
    }
如果要对所有记录进行ge,请创建一个方法:

public void getAllRecords() {

    Cursor cursor = db.query(WordsDB.TermTable, null, null, null, null, null, null, null);
    if(c != null)
            {
                while(c.moveToNext){
                    String term = c.getString(c.getColumnIndex("term")));
                    String type = c.getString(c.getColumnIndex("type")));


                    // use these strings as you want
                }
            }
}


那么,我可以为getData方法提供的ID的范围是多少?我尝试了0,但没有打印任何内容,尝试了1,但我从第0行的列中获取了IllegalStateException获取字段槽失败。是否显示所有记录?是的,插入的每行的所有列值。你知道怎么做吗?仍然从第0行第1列获取非法状态异常获取字段插槽失败。你知道为什么会发生这种情况吗?请发布你的完整活动代码和logcat错误,我认为你的数据库在查询数据库时没有打开。那么,我可以为getData方法提供的ID范围是多少?我尝试了0,但没有打印任何内容,尝试了1,但我从第0行的列中获取了IllegalStateException获取字段槽失败。是否显示所有记录?是的,插入的每行的所有列值。你知道怎么做吗?仍然从第0行第1列获取非法状态异常获取字段插槽失败。你知道为什么会发生这种情况吗?请发布你的完整活动代码和logcat错误,我认为你的数据库在查询数据库时没有打开。那么,我可以为getData方法提供的ID范围是多少?我尝试了0,但没有打印任何内容,尝试了1,但我从第0行的列中获取了IllegalStateException获取字段槽失败。是否显示所有记录?是的,插入的每行的所有列值。你知道怎么做吗?仍然从第0行第1列获取非法状态异常获取字段插槽失败。你知道为什么会发生这种情况吗?请发布你的完整活动代码和logcat错误,我认为你的数据库在查询数据库时没有打开。那么,我可以为getData方法提供的ID范围是多少?我尝试了0,但没有打印任何内容,尝试了1,但我从第0行的列中获取了IllegalStateException获取字段槽失败。是否显示所有记录?是的,插入的每行的所有列值。你知道怎么做吗?仍然从第0行第1列获取非法状态异常获取字段插槽失败。你知道为什么会发生这种情况吗?请公布你的完整活动代码和logcat错误,我认为你的数据库在查询数据库时未打开。检查我编辑的答案。检查我编辑的答案。检查我编辑的答案。检查我编辑的答案。检查我编辑的答案。