【问题标题】:How to retrieve single sqlite column and store rows into array如何检索单个 sqlite 列并将行存储到数组中
【发布时间】:2013-02-03 13:07:01
【问题描述】:

我是 android 新手,我使用 Sqlite 将 double 类型的数组存储到名为“KEY_VALUE”的列中

public long createEntry(Double rates) { 
    ContentValues cv = new ContentValues();
    cv.put(KEY_VALUE, rates);
    return ourDatabase.insert(TABLE, null, cv);
}

我通过另一个类将数据放入这里的列中

for(i=0;i<37;i++){
    entry.createEntry((theRSSHandler.rates()[i]));
    }

现在我想检索我保存的列并将每一行作为一个数组元素,我已经看到并尝试了其他类似的解决方案,但它们没有奏效。 这是我用来尝试获取列数据的方法但是它失败了。

public Double[] getData() {
    String[] col = {KEY_VALUE}; 
    Cursor c = ourDatabase.query(TABLE, col, KEY_VALUE , null, null, null, null);
    Double[] result = null;

    if(c != null){
        c.moveToFirst();
    }

    int iVal = c.getColumnIndex(KEY_VALUE);

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result[c.getPosition()] = c.getDouble(iVal);
    }
    return result;
}

【问题讨论】:

  • it has failed...怎么样?你能展示一下 LogCat 吗?
  • 显示空指针异常

标签: android sqlite android-layout android-emulator android-sqlite


【解决方案1】:

您正在尝试将值放入尚未初始化的数组中。

  Double[] result = null;

需要跟进类似...

  result = new Double[100];

我想你可能想用光标指向的记录数来初始化它

  result = new Double[c.count()]; 

【讨论】:

  • 我可能在语法上略有偏差,因为我是从内存中执行此操作的(我所有的“好”代码都在工作。)
猜你喜欢
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 2017-07-05
  • 2018-08-01
  • 2023-03-08
  • 2020-04-08
  • 2015-03-16
  • 2012-05-05
相关资源
最近更新 更多