Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite游标保持为空_Android_Sqlite - Fatal编程技术网

Android SQLite游标保持为空

Android SQLite游标保持为空,android,sqlite,Android,Sqlite,我试图在我的sQLite数据库的列中找到某些值的平均值。此列有一些空值和一些非空值。我需要根据最后1、5或10个非空值计算的平均值。但是当我试图通过查询获取数据时,我总是将游标设置为null。 请帮忙。 这是我获取最后一个非空里程值的代码 public void calculateAvgMileage(Prediction predictMileage) { if(predictMileage.isChkLastMileage1()==true) { String

我试图在我的sQLite数据库的列中找到某些值的平均值。此列有一些空值和一些非空值。我需要根据最后1、5或10个非空值计算的平均值。但是当我试图通过查询获取数据时,我总是将游标设置为null。 请帮忙。 这是我获取最后一个非空里程值的代码

 public void calculateAvgMileage(Prediction predictMileage) 
 {

     if(predictMileage.isChkLastMileage1()==true)
       {
String [] columns = new String[]{KEY_ROW_ID, KEY_KM, KEY_FUEL_QTY, KEY_FUEL_PRICE, KEY_TOTAL_COST, KEY_MILEAGE, KEY_DATE,KEY_TANK_FULL};
            predictionCursor = ourDatabase.rawQuery("SELECT * FROM fuel_table ORDER BY _id DESC LIMIT 1", null);

            if(predictionCursor!=null && predictionCursor.getColumnCount()>0)
            {
                predictionCursor.moveToLast();
                String predictionMileage= predictionCursor.getString(5);
                if(predictionMileage==null)
                {
                predictionCursor.moveToPrevious();
                }
                else
                {
                avgMileagePrediction.setpredictionMileage(Double.valueOf(predictionMileage));
                }
            }

在通过调用
moveToFirst
或类似函数强制光标实际读取数据之前,您无法读取列数。

好吧,我在其他函数中也做了同样的事情,它们也工作了。无论如何,我的问题是游标没有从查询本身获取值。接下来的步骤永远无法完成。你不明白我写的是什么,是吗?在
getColumnCount
检查之前插入对
moveToFirst
的调用。否!!仍然不起作用。我想做的是从我的数据库中获取最后的里程数,并找到行驶特定公里所需的燃油量。如通过计算fuelQty=km/里程(从数据库中获得),但我得到的fuelQty结果是“无穷大”。里程是字符串还是数字?