首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jackcess从Map更新行

Jackcess从Map更新行
EN

Stack Overflow用户
提问于 2014-03-14 12:24:21
回答 1查看 473关注 0票数 0

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

代码语言:javascript
复制
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开头的行。我发现了这个:

代码语言:javascript
复制
createIndexCursor(Table table, Index index,Object[] startRow, Object[] endRow) 

在此示例中,如何设置索引、starRow和endRow?

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

代码语言:javascript
复制
 asUpdateRow(Map<String,?> rowMap)

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

代码语言:javascript
复制
  gridView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {

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

EN

回答 1

Stack Overflow用户

发布于 2014-08-08 06:32:58

我想在游标的帮助下只抽取具有相同别名的行,例如:只抽取以B0开头的行

假设您在alias列上有一个索引,您可以只为'B0‘行构建一个游标,然后将这些行提取到一个ArrayList中,如下所示

代码语言:javascript
复制
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值更新数据库,可以这样做:

代码语言:javascript
复制
// update "age" for the first row in the ArrayList (index=0)
rowList.get(0).put("age", "77");
tbl.updateRow(rowList.get(0));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22396083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档