DBF使用xBaseJ更新每个列

时间:2014-10-18 11:23:05

标签: java dbf

我需要在列中更新DBF的值,并且需要更新该列的每个记录:

DBF classDB=new DBF("Test.dbf");
    double id;

    CharField  cval = (CharField) classDB.getField("A");  
    NumField  xval = (NumField) classDB.getField("B");
    NumField  yval = (NumField) classDB.getField("C");
    classDB.read();


    id = Double.parseDouble(xval.get())+Double.parseDouble(yval.get());
    cval.put(Double.toString(id));
    classDB.update();
    System.out.println("Updated");  

我正在更新列上的第一个值,如何更新整个列?我需要这样的东西

while(..next()){

id = Double.parseDouble(xval.get())+Double.parseDouble(yval.get());
        cval.put(Double.toString(id));
        classDB.update();
        System.out.println("Updated");  
}

我正在使用xBaseJ API来执行此操作。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

final XBaseFile dbf = new XBase().open(new File("..."));
try {
  for (int i = 0; i < dbf.rowCount(); i++) {
    if (dbf.go(i) && !dbf.isDeleted()) {
      final Double x = dbf.getValue("B");
      final Double y = dbf.getValue("C");

      dbf.setValue("C", String.valueOf(x + y));
    }
  }
} finally {
  dbf.closeQuietly();
}

我正在使用xbase4j库。