首页 / 浏览问题 / 组件GIS / 问题详情
问下,Recordset设置属性问题
5EXP 2022年10月20日
使用产品:iserver 10 i  操作系统:win10 x64

kzmj 是双精度字段类型,xzqmc是文本字段类型

用下列方案:

     Dictionary attributeDict = new Dictionary();

   attributeDict.Add("kzmj", "AAA");

   attributeDict.Add("xzqmc", "测试二一");

   bool addSucc = pRecordset.AddNew(geometry, attributeDict);

返回的addSucc是true;但用idestop打开,发现kzmj字段没赋值;

但如果用另一种方案:

pRecordset.AddNew(geometry);

bool setSucc= pRecordset.setFieldValue(fieldindex,"AAA");

此时setSucc返回的是false;

(1)这种设置属性,若因一些比如字段类型不匹配,或其他原因,导致set失败,有抛出一些错误的地方,可以快速排查?

(2)上述这两方案,为何一个返回true,一个返回false; 有什么不一样?

1个回答

您好,针对您提到 2 个问题在下面逐一解答:

  1. 是不会抛错误异常的,若失败的话会直接返回 false,通常来说绝大部分都是字段类型不匹配造成的,建议直接检查字段类型和设置的值类型是否匹配;
  2. 若使用 Recordset.AddNew 接口添加字段值的话,只要添加的字段中有一个字段值添加成功的话,就会返回 true,而因为类型不匹配添加失败的则会被忽略;使用 Recordset.setFieldValue 接口直接设置的话,当类型不匹配时会直接返回设置失败。

希望可以帮到您。

2,253EXP 2022年10月20日
...