我无法从以下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
答案 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;
}