将关系表中数据转换成为sde对象

using ESRI.ArcGIS.Geodatabase;

#region 将关系表中数据转换成为sde对象
    /// <summary>
    /// 将关系表中数据转换成为sde对象
    /// </summary>
    /// <param name="dataset">添加为SDE要素的数据集</param>
    /// <param name="workspace">工作空间_打开要添加要素到的要素集的工作空间</param>
    /// <param name="featureclass">要素集,将添加要素添加到的要素集名</param>
    public static void ReToSDEFeature(DataSet dataset, IWorkspace workspace, string featureclass)
    {
        int dataNum = dataset.Tables[0].Rows.Count;
        for (int i = 0; i < dataNum; i++)
        {

            IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
            IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(featureclass);
            IWorkspaceEdit workspaceEdite = (IWorkspaceEdit)workspace;
            ESRI.ArcGIS.Geometry.IPoint point = new ESRI.ArcGIS.Geometry.PointClass();
            IFeature feature = featureClass.CreateFeature();

            workspaceEdite.StartEditing(true);
            workspaceEdite.StartEditOperation();
            double X; double Y;
            X = (double)dataset.Tables[0].Rows[i]["东经"];
            Y = (double)dataset.Tables[0].Rows[i]["北纬"];
            point.X = X; point.Y = Y;
            feature.Shape = point;
            ISubtypes subtypes = (ISubtypes)featureClass;
            IRowSubtypes rowSubtypes = (IRowSubtypes)feature;
            if (subtypes.HasSubtype)
            {
                rowSubtypes.SubtypeCode = 0;
            }
            rowSubtypes.InitDefaultValues();
            feature.Store();
            feature.set_Value(feature.Fields.FindField("公路_ID"), dataset.Tables[0].Rows[i]["公路_ID"].ToString());
            feature.set_Value(feature.Fields.FindField("灾害_ID"), dataset.Tables[0].Rows[i]["灾害_ID"].ToString());
            feature.set_Value(feature.Fields.FindField("灾害类型"), dataset.Tables[0].Rows[i]["灾害类型"].ToString());
            feature.Store();
            bool hasEdits = false;
            workspaceEdite.HasEdits(ref hasEdits);
            if (hasEdits)
            {
                workspaceEdite.StopEditing(true);
            }
        }

    }
    #endregion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值