SQLite选择查询到字符串

时间:2014-08-04 14:24:49

标签: android sqlite persistent-storage

我无法从以下SQLite选择查询功能添加读取数据。我有一个包含3列的表,即driverID,driversName,driversNo。

它应该返回一个简单的字符串但是唉。

public String readDrivers() {
    Cursor cursor = database.query(MySQLiteHelper.PROFILE_TABLE_NAME, necessaryColumns, null, null, null, null, null);

    if (cursor != null){
        cursor.moveToFirst();
        Log.v("TEST", Integer.toString(cursor.getCount()));
        Log.v("TEST", cursor.getColumnName(0));
        Log.v("TEST", cursor.getColumnName(1));
        Log.v("TEST", cursor.getString(0));
        Log.v("TEST", cursor.getString(1));
    }

    String returnString = cursor.getString(0) + cursor.getString(1);
    return returnString;
}

以下是LogCat的最新结果。由于一些奇怪的原因,最后两个日志没有显示出来。

08-04 20:27:35.271: V/TEST(25126): 1
08-04 20:27:35.271: V/TEST(25126): driversName
08-04 20:27:35.271: V/TEST(25126): driversNo

非常感谢任何帮助。

其余代码基于此http://www.vogella.com/tutorials/AndroidSQLite/article.html

1 个答案:

答案 0 :(得分:0)

如果您提供表结构会更容易,但无论如何,一些可能有用的信息:

当非空时,光标从位置-1开始。

读取光标的好方法是

while (cursor.moveToNext()) {
    ...
}

此外,

String returnString = cursor.getString(1) + cursor.getString(2);

以上代码将从查询返回的第一行连接列索引1和列索引2(请注意索引从0开始)。

编辑: 然后,下面的内容应该可以正常工作。

public String readDrivers() {
    Cursor cursor = database.query(MySQLiteHelper.PROFILE_TABLE_NAME, necessaryColumns, null, null, null, null, null);

    List<String> list = new ArrayList<String>;
    while (cursor.moveToNext()) {
        list.add(cursor.getString(1) + cursor.getString(2));
    }

    return list;
}