//创建内存工作空间
Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.InMemoryWorkspaceFactory");
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
IWorkspaceName workspaceName = workspaceFactory.Create("", "MyWorkspace", null, 0);
IName name = (IName)workspaceName;
IWorkspace workspace = (IWorkspace)name.Open();
IFeatureWorkspace pFeatureWorkspace = workspace as IFeatureWorkspace;
//打开要素数据集,不存在该方法??
//IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset("TOPO");
//IFeatureDataset pFeatureDataset = pFeatureWorkspace.CreateFeatureDataset("TOPO", baseSR);
#region 字段
IFeatureClassDescription pp_fcDescription = new FeatureClassDescriptionClass();
IObjectClassDescription pp_ocDescription = (IObjectClassDescription)pp_fcDescription;
IFields pp_fields = pp_ocDescription.RequiredFields;
IFieldsEdit pp_fieldsEdit = (IFieldsEdit)pp_fields;
int pp_shapeFieldIndex = pp_fields.FindField(pp_fcDescription.ShapeFieldName);
IField pp_field = pp_fields.get_Field(pp_shapeFieldIndex);
IGeometryDef pp_geometryDef = pp_field.GeometryDef;
IGeometryDefEdit pp_geometryDefEdit = (IGeometryDefEdit)pp_geometryDef;
pp_geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPolygon;
pp_geometryDefEdit.SpatialReference_2 = baseSR;
#endregion
IFeatureClass pFeatureClass = pFeatureWorkspace.CreateFeatureClass("MemoryFeatureClass", pp_fields, pp_ocDescription.InstanceCLSID, pp_ocDescription.ClassExtensionCLSID, esriFeatureType.esriFTSimple, pp_fcDescription.ShapeFieldName, "");
//IFeatureClass pFeatureClass = pFeatureDataset.CreateFeatureClass("MemoryFeatureClass", pp_fields, pp_ocDescription.InstanceCLSID, pp_ocDescription.ClassExtensionCLSID, esriFeatureType.esriFTSimple, pp_fcDescription.ShapeFieldName, "");
IFeatureCursor pFeatCursor = pFeatureClass.Insert(true);
IFeatureClass pInFeatureClass = DataSourceOpr.GetAFeatureClassFromDB(@"TEST.gdb", "RESA");
IFeatureCursor pInFeatCursor = pInFeatureClass.Search(null, false);
IFeature pInFeature = pInFeatCursor.NextFeature();
while (pInFeature != null)
{
IFeatureBuffer pFeatBuf = pFeatureClass.CreateFeatureBuffer();
//pFeatBuf.set_Value(pFeatBuf.Fields.FindField("类型"), (object)"小斑");
pFeatBuf.Shape = pInFeature.Shape;
pFeatCursor.InsertFeature(pFeatBuf);
pFeatCursor.Flush();
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatBuf);
pInFeature = pInFeatCursor.NextFeature();
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatCursor);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pInFeature);/
System.Runtime.InteropServices.Marshal.ReleaseComObject(pInFeatCursor);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pInFeatureClass);
MessageBox.Show("检查完毕,结束时间:" + DateTime.Now.ToString("yyyyMMddHHmmss"));
allErrorInfoList.Clear();
string timeID = DateTime.Now.ToString("yyyyMMddHHmmss");
string tarDB = Application.StartupPath + "\\Temp\\" + timeID + ".gdb";
string srcDB = TEMPDB;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}