2

我正在使用 jackess 2 读取 Java 中的 Access 文件。下面是代码。

在我阅读的表格中,我只有 1 行。MS-Access 中有一个类型为“Yes/No”的名为“Active”的列。

当我打印表中的所有值时,Active 列的值显示为“true”。但是当我尝试使用 findRow() 查询该行时,没有匹配项。

如何在表格中查询“活动”列?

try {
    Database db = DatabaseBuilder.open(new File(strDataPath + "DB.mdb"));
    Table table = db.getTable("03_Test_Cases");

    for(Row row : table) {
        System.out.println("Column 'a' has value: " + row.get("Active"));
        // RETURNS "true"
    }

    Row row = CursorBuilder.findRow(table, Collections.singletonMap("Active", "true"));

    if(row != null) {
       System.out.println("Found row : " + row);
    } else {
       System.out.println("Could not find row"); // Always hits here only.
    }

} catch (IOException e) {
    e.printStackTrace();
}
4

1 回答 1

1

您需要将搜索值指定为实际的布尔值,而不是字符串。这对我有用:

Row row = CursorBuilder.findRow(table, Collections.singletonMap("Active", true));
if (row != null) {
    System.out.println("Found row : " + row);
}
else {
    System.out.println("Could not find row");
}
于 2014-04-05T11:04:28.067 回答