我的sql应该只返回一个包含三列的记录。 Funcioando是正确的,因为我正在调试代码以更好地理解我的问题。我需要获取每列的值以移动到ClienteVO类。但他带来了三列,但第二个选择在第二个时候会出现错误Can1t read row # 0, col # -1 from CursorWindow
我检查了调试并且列名正确并且记录返回。
SQLiteDatabase db = new DB(ctx).getReadableDatabase();
String sql = String.format("select limite,valor,nome from limite " +
" INNER JOIN cliente ON cliente.id = limite.cliente_id " +
"where cliente.id=1");
Cursor rs = db.rawQuery( sql, null);
ClienteVO vo = null;
if (rs != null){
vo = new ClienteVO();
rs.moveToFirst();
vo.setLimite(rs.getFloat(rs.getColumnIndex("limite")));
vo.setValor(rs.getFloat(rs.getColumnIndex("valor")));
vo.setNome(rs.getString(rs.getColumnIndex("nome")));
}
然后阅读有关研究迭代列的信息。他经常穿过三根柱子。我想知道这是获取这些值的唯一方法,以及获得属性的最佳方法。
Cursor rs = db.rawQuery( sql, null);
ClienteVO vo = null;
if (rs != null){
vo = new ClienteVO();
rs.moveToFirst();
for (Integer i=0; i <= rs.getColumnNames().length; i++ ){
//How can I get the values of clean way
}
}
答案 0 :(得分:0)
Cursor rs = db.rawQuery( sql, null);
ClienteVO vo = null;
vo = new ClienteVO();
if (rs.moveToFirst()) {
vo.setLimite(rs.getFloat(0));
vo.setValor(rs.getFloat(1));
vo.setNome(rs.getString(2));
}
你可以写这个。
Cursor rs = db.rawQuery( sql, null);
上面你有sql变量。它包含什么?
好的,你应该使用下一个
if (rs.moveToFirst()) {//}
检查光标是否至少有一行。