桌面开发如何修改数据集的属性结构?

0 投票
桌面开发如何实现对矢量数据集修改属性结构,及修改属性值?
8月 4, 2017 分类:  418次浏览 | 用户: xxx_BB 初出茅庐 (34 分)

1个回答

0 投票

你是想问扩展开发怎么开发,还是想问如何修改属性。如果是不会扩展开发,请先看一下扩展开发入门,先了解如何扩展开发:http://blog.csdn.net/supermapsupport/article/details/49074073

如果已经了解并且已经回扩展开发,使用上就和组件一样了,先从程序获取出worksapce,从workspace里面获取出对应的数据集,数据集用查询或者直接获取出recordset,recordset.GetFieldInfos (),通过FieldInfos 对字段进行管理修改。然后用recordset.setvalue等方法去修改字段值。

8月 4, 2017 用户: 程逸诗 名扬四海 (1,242 分)
能对修改已有的字段名吗,我看API里有添加的新字段的,有没有直接改名字的呢
我在代码里添加了新的字段,返回值也是成功的,可是数据上并没有成功添加。

//打开待拓扑重建数据集
                DatasetVector datasetVector = dataSource.Datasets["测试数据"] as DatasetVector;
                if (datasetVector.Open())
                {
                    Recordset rcdset = datasetVector.GetRecordset(false, CursorType.Static);
                    FieldInfos fieldInfos = rcdset.GetFieldInfos();

                    // 实例化一个字段信息对象,对其进行设置
                    FieldInfo fieldInfo = new FieldInfo();
                    fieldInfo.Name = "添加新的字段";
                    fieldInfo.Caption = "添加新的字段";
                    fieldInfo.DefaultValue = "0";
                    fieldInfo.Type = FieldType.Double;
                    fieldInfo.IsRequired = true;

                    if (fieldInfos.Add (fieldInfo)>0)
                        MessageBox.Show("添加新字段成功!");
                    else
                        MessageBox.Show("添加新字段失败!");

                    rcdset.Close();
                    datasetVector.Close();
                    dataSource.Close();
                    workspace.Close();
没有哈,已经存在的字段不能修改。如果要修改只能新建一个新的字段,将所有的字段值复制到新的字段里面。
recordset修改后是需要update提交更新做的修改。
我现在添加了一个新的字段,我想统一修改这个字段的所有属性值,我用了Modify方法,报错提示“不支持该类型引擎”,我该咋办~
Modify方法目前只支持OraclePlus、SQLPlus、PostgreSQL、KingBase、MySQL引擎。你new一个FieldInfos,设置后属性再用Add方法添加。
...