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