0

这是我的问题。我有一张这样的桌子

alias  id  age
-----  --  ---
A0      1  23
A0      2  12
A0      3  32
B0      1  45
B0      2  80
B0      3  56
C0      1  __
C0      2  __
C0      3  __

我想借助游标仅提取具有相同别名的行,例如:仅以 B0 开头的行。我发现了这个:

createIndexCursor(Table table, Index index,Object[] startRow, Object[] endRow) 

使用此示例如何设置索引、starRow 和 endRow?

我将用这些数据填充一个gridview,一旦用户编辑一个空字段,我就会将该行从gridview保存到地图中,所以我找到了这个方法:

 asUpdateRow(Map<String,?> rowMap)

那么如何使用属性更新表的行

  gridView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {

为了将数据保存在确切的位置?

4

1 回答 1

0

我想借助游标仅提取具有相同别名的行,例如:仅以 B0 开头的行

假设您在该alias列上有一个索引,您可以仅为“B0”行构建一个游标,然后将这些行提取到这样的 ArrayList 中

Database db = DatabaseBuilder.open(new File(
        "C:/Users/Gord/Desktop/Database1.accdb"));
Table tbl = db.getTable("MyTable");
Cursor crsr = new CursorBuilder(tbl)
        .setIndex(tbl.getIndex("alias"))
        .setStartEntry("B0")
        .setEndEntry("B0")
        .toCursor();
List<Row> rowList = new ArrayList<Row>();
for (Row r : crsr.newIterable()) {
    rowList.add(r);
}

然后,如果您想使用age其中一行的新值更新数据库,您可以这样做:

// update "age" for the first row in the ArrayList (index=0)
rowList.get(0).put("age", "77");
tbl.updateRow(rowList.get(0));
于 2014-08-07T22:32:57.973 回答