日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DE连接,创建数据集,数据导入以及数据导出(转载)

發布時間:2024/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DE连接,创建数据集,数据导入以及数据导出(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/kone0611/article/details/51532006

界面

?

?

?

2.數據庫的連接

[csharp]?view plaincopy
  • IWorkspace?workspace;??
  • IFeatureWorkspace?featureWorkspace;??
  • IRasterWorkspaceEx?rasterWorkspaceEx;??
  • IFeatureDataset?featureDataset;??
  • IRasterDataset?rasterDataset;??
  • IPropertySet?propertySet;??
  • private?void?btnConnectDB_Click(object?sender,?EventArgs?e)??
  • {??
  • ????propertySet?=?new?PropertySetClass();??
  • ????propertySet.SetProperty("server",?"Toby-PC");??
  • ????propertySet.SetProperty("instance",?"5151/tcp");??
  • ????propertySet.SetProperty("database",?"sde");??
  • ????propertySet.SetProperty("user",?"sde");??
  • ????propertySet.SetProperty("password",?"Toby521904");??
  • ????propertySet.SetProperty("version",?"SDE.DEFAULT");??
  • ????IWorkspaceFactory?workspaceFactory?=new?SdeWorkspaceFactory();??
  • ????workspace?=?workspaceFactory.Open(propertySet,?0);??
  • ????MessageBox.Show("連接成功");??
  • ????
  • }??
  • 3.創建數據集

    [csharp]?view plaincopy
  • private?void?btnCreateDataSet_Click(object?sender,?EventArgs?e)??
  • ????{??
  • ????????if?(this.txtRasterDS.Text?!=?""?||?this.txtFeatureDS.Text?!=?"")??
  • ????????{??
  • ????????????featureWorkspace?=?workspace?as?IFeatureWorkspace;??
  • ????????????rasterWorkspaceEx?=?workspace?as?IRasterWorkspaceEx;??
  • ????????????IEnumDatasetName?enumDatasetName;??
  • ????????????bool?isExit?=?false;??
  • ????????????IDatasetName?datasetName;??
  • ????????????string?dsName?=?"";??
  • ????????????if?(this.txtFeatureDS.Text?!=?"")??
  • ????????????{??
  • ????????????????//定義空間參考??
  • ????????????????ISpatialReferenceFactory?spatialReferenceFactory?=?new?SpatialReferenceEnvironmentClass();??
  • ????????????????ISpatialReference?spatialReference?=?spatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_Beijing1954);??
  • ????????????????spatialReference.SetDomain(-1000,?-1000,?1000,?1000);??
  • ????????????????enumDatasetName?=?workspace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);??
  • ????????????????datasetName?=?enumDatasetName.Next();??
  • ????????????????isExit?=?false;??
  • ????????????????dsName?=?"sde.SDE."?+?this.txtFeatureDS.Text;??
  • ????????????????while?(datasetName?!=?null)??
  • ????????????????{??
  • ????????????????????if?(datasetName.Name?==?dsName)??
  • ????????????????????{??
  • ????????????????????????isExit?=?true;??
  • ????????????????????????MessageBox.Show("矢量數據集已經存在!");??
  • ????????????????????????this.txtFeatureDS.Focus();??
  • ????????????????????????return;??
  • ????????????????????}??
  • ????????????????????datasetName?=?enumDatasetName.Next();??
  • ????????????????}??
  • ????????????????if?(isExit?==?false)??
  • ????????????????{??
  • ????????????????????featureDataset?=?featureWorkspace.CreateFeatureDataset(this.txtFeatureDS.Text,?spatialReference);??
  • ????????????????}??
  • ????????????????MessageBox.Show("矢量數據集創建成功");??
  • ????????????}??
  • ????????????if?(this.txtRasterDS.Text?!=?"")??
  • ????????????{??
  • ????????????????//創建影像數據集;??
  • ????????????????isExit?=?false;??
  • ????????????????enumDatasetName?=?workspace.get_DatasetNames(esriDatasetType.esriDTRasterDataset);??
  • ????????????????datasetName?=?enumDatasetName.Next();??
  • ????????????????dsName?=?"SDE."?+?this.txtRasterDS.Text;??
  • ????????????????while?(datasetName?!=?null)??
  • ????????????????{??
  • ????????????????????if?(datasetName.Name?==?dsName)??
  • ????????????????????{??
  • ????????????????????????isExit?=?true;??
  • ????????????????????????MessageBox.Show("矢量數據集已經存在!");??
  • ????????????????????????break;??
  • ????????????????????}??
  • ????????????????????datasetName?=?enumDatasetName.Next();??
  • ????????????????}??
  • ????????????????if?(isExit?==?false)??
  • ????????????????{??
  • ????????????????????IRasterStorageDef?rasterStorageDef?=?new?RasterStorageDefClass();??
  • ????????????????????rasterStorageDef.CompressionType?=?esriRasterCompressionType.esriRasterCompressionUncompressed;??
  • ????????????????????rasterStorageDef.PyramidLevel?=?1;??
  • ????????????????????rasterStorageDef.PyramidResampleType?=?rstResamplingTypes.RSP_BilinearInterpolation;??
  • ????????????????????rasterStorageDef.TileHeight?=?128;??
  • ????????????????????rasterStorageDef.TileWidth?=?128;??
  • ????????????????????IRasterDef?rasterDef?=?new?RasterDefClass();??
  • ????????????????????ISpatialReference?rasterDSpatialReference?=?new?UnknownCoordinateSystemClass();??
  • ????????????????????rasterDef.SpatialReference?=?rasterDSpatialReference;??
  • ????????????????????IGeometryDef?geometryDef?=?new?GeometryDefClass();??
  • ????????????????????IGeometryDefEdit?geometryDefEdit?=?(IGeometryDefEdit)geometryDef;??
  • ????????????????????geometryDefEdit.AvgNumPoints_2?=?5;??
  • ????????????????????geometryDefEdit.GridCount_2?=?1;??
  • ????????????????????geometryDefEdit.set_GridSize(0,?1000);??
  • ????????????????????geometryDefEdit.GeometryType_2?=?esriGeometryType.esriGeometryPolygon;??
  • ????????????????????ISpatialReference?spatialReference2?=?new?UnknownCoordinateSystemClass();??
  • ????????????????????geometryDefEdit.SpatialReference_2?=?spatialReference2;??
  • ????????????????????rasterDataset?=?rasterWorkspaceEx.CreateRasterDataset(this.txtRasterDS.Text,?1,?rstPixelType.PT_LONG,?rasterStorageDef,?"DEFAULTS",?rasterDef,?geometryDef);??
  • ????????????????????MessageBox.Show("柵格數據集創建成功");??
  • ????????????????}??
  • ????????????}??
  • ????????}??
  • ????}<span?style="font-family:?Arial,?Helvetica,?sans-serif;?background-color:?rgb(255,?255,?255);">?</span>??
  • 4.矢量數據直接導入sde

    [csharp]?view plaincopy
  • private?void?importFToSDE_Click(object?sender,?EventArgs?e)??
  • ????{??
  • ????????try??
  • ????????{??
  • ????????????IDataset?pDataSet?=?workspace?as?IDataset;??
  • ????????????this.openFileDialog1.Filter?=?"shp?file(*.shp)|*.shp";??
  • ????????????this.openFileDialog1.Title?=?"打開矢量數據";??
  • ????????????this.openFileDialog1.Multiselect?=?false;??
  • ????????????string?fileName?=?"";??
  • ????????????if?(this.openFileDialog1.ShowDialog()?==?DialogResult.OK)??
  • ????????????{??
  • ????????????????fileName?=?this.openFileDialog1.FileName;??
  • ????????????????FileInfo?fileInfo?=?new?FileInfo(fileName);??
  • ????????????????string?filePath?=?fileInfo.DirectoryName;??
  • ????????????????string?file?=?fileInfo.Name;??
  • ????????????????FeatureClassToFeatureClass(pDataSet,?filePath,?file,?"dddd",?true);??
  • ????????????}??
  • ????????????MessageBox.Show("導入成功");??
  • ????????}??
  • ????????catch?(Exception?ee)??
  • ????????{??
  • ????????????MessageBox.Show(ee.ToString());??
  • ????????}???
  • ????}??
  • ?

    [csharp]?view plaincopy
  • public?void?FeatureClassToFeatureClass(IDataset?pDataSet,?string?strFeatFileDir,?string?strFeatFileName,?string?strOutName,?bool?isWorkspace)??
  • {??
  • ????try??
  • ????{??
  • ????????IWorkspaceFactory?pWSF?=?new?ShapefileWorkspaceFactoryClass();??
  • ????????IFeatureWorkspace?pFeatureWK?=?(IFeatureWorkspace)pWSF.OpenFromFile(strFeatFileDir,?0);??
  • ????????IFeatureClass?pInFeatureClass?=?pFeatureWK.OpenFeatureClass(strFeatFileName);??
  • ????????if?(pInFeatureClass?==?null?||?pDataSet?==?null)??
  • ????????{??
  • ????????????MessageBox.Show("創建失敗");??
  • ????????????return;??
  • ????????}??
  • ????????IFeatureClassName?pInFeatureclassName;??
  • ????????IDataset?pIndataset?=?(IDataset)pInFeatureClass;??
  • ????????pInFeatureclassName?=?(IFeatureClassName)pIndataset.FullName;??
  • ????????//如果名稱已存在??
  • ????????IWorkspace2?pWS2?=?null;??
  • ????????if?(isWorkspace)??
  • ????????????pWS2?=?pDataSet?as?IWorkspace2;??
  • ????????else??
  • ????????????pWS2?=?pDataSet.Workspace?as?IWorkspace2;??
  • ????????if?(pWS2.get_NameExists(esriDatasetType.esriDTFeatureClass,?strOutName))??
  • ????????{??
  • ????????????DialogResult?result;??
  • ????????????result?=?System.Windows.Forms.MessageBox.Show(null,?"矢量文件名??"?+?strOutName?+?"??在數據庫中已存在!"?+?"/r是否覆蓋?",?"相同文件名",?MessageBoxButtons.YesNo,?MessageBoxIcon.Information,?MessageBoxDefaultButton.Button1);??
  • ????????????//覆蓋原矢量要素??
  • ????????????if?(result?==?DialogResult.Yes)??
  • ????????????{??
  • ????????????????IFeatureWorkspace?pFWS?=?(IFeatureWorkspace)pWS2;??
  • ????????????????IDataset?pDataset?=?pFWS.OpenFeatureClass(strOutName)?as?IDataset;??
  • ????????????????pDataset.Delete();??
  • ????????????????pDataset?=?null;??
  • ????????????}??
  • ????????}??
  • ????????IFields?pInFields,?pOutFields;??
  • ????????IFieldChecker?pFieldChecker?=?new?FieldCheckerClass();??
  • ????????IEnumFieldError?pError;??
  • ????????pInFields?=?pInFeatureClass.Fields;??
  • ????????pFieldChecker.Validate(pInFields,?out?pError,?out?pOutFields);??
  • ????????IField?geoField?=?null;??
  • ????????for?(int?i?=?0;?i?<?pOutFields.FieldCount;?i++)??
  • ????????{??
  • ????????????IField?pField?=?pOutFields.get_Field(i);??
  • ????????????if?(pField.Type?==?esriFieldType.esriFieldTypeOID)??
  • ????????????{??
  • ????????????????IFieldEdit?pFieldEdit?=?(IFieldEdit)pField;??
  • ????????????????pFieldEdit.Name_2?=?pField.AliasName;??
  • ????????????}??
  • ????????????if?(pField.Type?==?esriFieldType.esriFieldTypeGeometry)??
  • ????????????{??
  • ????????????????geoField?=?pField;??
  • ????????????????break;??
  • ????????????}??
  • ????????}??
  • ????????IGeometryDef?geometryDef?=?geoField.GeometryDef;??
  • ????????IFeatureDataConverter?one2another?=?new?FeatureDataConverterClass();??
  • ????????IFeatureClassName?pOutFeatureClassName?=?new?FeatureClassNameClass();??
  • ????????IDatasetName?pOutDatasetName?=?(IDatasetName)pOutFeatureClassName;??
  • ????????if?(isWorkspace)??
  • ????????????pOutDatasetName.WorkspaceName?=?(IWorkspaceName)pDataSet.FullName;??
  • ????????else??
  • ????????????pOutDatasetName.WorkspaceName?=?(IWorkspaceName)((IDataset)pDataSet.Workspace).FullName;??
  • ????????pOutDatasetName.Name?=?strOutName;??
  • ????????if?(isWorkspace)??
  • ????????{??
  • ????????????one2another.ConvertFeatureClass(pInFeatureclassName,?null,?null,?pOutFeatureClassName,?geometryDef,?pOutFields,?"",?1000,?0);??
  • ????????}??
  • ????????else??
  • ????????{??
  • ????????????IFeatureDataset?pFeatDS?=?(IFeatureDataset)pDataSet;??
  • ????????????IFeatureDatasetName?pOutFeatDSName?=?pFeatDS.FullName?as?IFeatureDatasetName;??
  • ????????????one2another.ConvertFeatureClass(pInFeatureclassName,?null,?pOutFeatDSName,?pOutFeatureClassName,?geometryDef,?pOutFields,?"",?1000,?0);??
  • ????????????pOutFeatDSName?=?null;??
  • ????????????pFeatDS?=?null;??
  • ????????}??
  • ????}??
  • ????catch?(Exception?ex)??
  • ????{??
  • ????????MessageBox.Show(ex.Message);??
  • ????????return;??
  • ????}??
  • }??
  • 5.矢量數據導入sde數據集

    ? ? ? ?

    [csharp]?view plaincopy
  • private?void?importF_Click(object?sender,?EventArgs?e)??
  • ????{??
  • ????????featureWorkspace?=?workspace?as?IFeatureWorkspace;??
  • ????????this.openFileDialog1.Filter?=?"shp?file(*.shp)|*.shp";??
  • ????????this.openFileDialog1.Title?=?"打開矢量數據";??
  • ????????this.openFileDialog1.Multiselect?=?false;??
  • ????????string?fileName?=?"";??
  • ????????if?(this.openFileDialog1.ShowDialog()?==?DialogResult.OK)??
  • ????????{??
  • ????????????fileName?=?this.openFileDialog1.FileName;??
  • ????????????FileInfo?fileInfo?=?new?FileInfo(fileName);??
  • ????????????string?filePath?=?fileInfo.DirectoryName;??
  • ????????????string?file?=?fileInfo.Name;??
  • ????????????IWorkspaceFactory?shpwpf?=?new?ShapefileWorkspaceFactory();??
  • ????????????IWorkspace?shpwp?=?shpwpf.OpenFromFile(filePath,?0);??
  • ????????????IFeatureWorkspace?shpfwp?=?shpwp?as?IFeatureWorkspace;??
  • ????????????IFeatureClass?shpfc?=?shpfwp.OpenFeatureClass(file);??
  • ????????????//導入SDE數據庫??
  • ????????????IFeatureClass?sdeFeatureClass?=?null;??
  • ????????????IFeatureClassDescription?featureClassDescription?=?new?FeatureClassDescriptionClass();??
  • ????????????IObjectClassDescription?objectClassDescription?=?featureClassDescription?as?IObjectClassDescription;??
  • ????????????IFields?fields?=?shpfc.Fields;??
  • ????????????IFieldChecker?fieldChecker?=?new?FieldCheckerClass();??
  • ????????????IEnumFieldError?enumFieldError?=?null;??
  • ????????????IFields?vFields?=?null;??
  • ????????????fieldChecker.ValidateWorkspace?=?featureWorkspace?as?IWorkspace;??
  • ????????????fieldChecker.Validate(fields,out?enumFieldError,out?vFields);??
  • ????????????featureDataset?=?featureWorkspace.OpenFeatureDataset(this.txtFeatureDS.Text);??
  • ????????????try??
  • ????????????{??
  • ????????????????sdeFeatureClass?=?featureWorkspace.OpenFeatureClass(shpfc.AliasName);??
  • ????????????}??
  • ????????????catch??
  • ????????????{??
  • ?????????????????
  • ????????????}??
  • ????????????if?(sdeFeatureClass?==?null)??
  • ????????????{??
  • ????????????????sdeFeatureClass?=?featureDataset.CreateFeatureClass(shpfc.AliasName,?vFields,??
  • ????????????????????objectClassDescription.InstanceCLSID,?objectClassDescription.ClassExtensionCLSID,??
  • ????????????????????shpfc.FeatureType,?shpfc.ShapeFieldName,?"");??
  • ????????????????IFeatureCursor?featureCursor?=?shpfc.Search(null,?true);??
  • ????????????????IFeature?feature?=?featureCursor.NextFeature();??
  • ????????????????IFeatureCursor?sdeFeatureCursor?=?sdeFeatureClass.Insert(true);??
  • ????????????????IFeatureBuffer?sdeFeatureBuffer;??
  • ????????????????while?(feature?!=?null)??
  • ????????????????{??
  • ????????????????????sdeFeatureBuffer?=?sdeFeatureClass.CreateFeatureBuffer();??
  • ????????????????????IField?shpField?=?new?FieldClass();??
  • ????????????????????IFields?shpFields?=?feature.Fields;??
  • ????????????????????for?(int?i?=?0;?i?<?shpFields.FieldCount;?i++)??
  • ????????????????????{??
  • ????????????????????????shpField?=?shpFields.get_Field(i);??
  • ????????????????????????int?index?=?sdeFeatureBuffer.Fields.FindField(shpField.Name);??
  • ????????????????????????if?(index?!=?-1)??
  • ????????????????????????{??
  • ????????????????????????????sdeFeatureBuffer.set_Value(index,?feature.get_Value(i));??
  • ????????????????????????}??
  • ????????????????????}??
  • ????????????????????sdeFeatureCursor.InsertFeature(sdeFeatureBuffer);??
  • ????????????????????sdeFeatureCursor.Flush();??
  • ????????????????????feature?=?featureCursor.NextFeature();??
  • ????????????????}??
  • ????????????}??
  • ????????}??
  • ????????MessageBox.Show("導入成功");??
  • ????}??
  • 6.導入柵格數據

    ?

    [csharp]?view plaincopy
  • private?void?importR_Click(object?sender,?EventArgs?e)??
  • ????{??
  • ????????this.openFileDialog1.Filter?=?"Imag?file?(*.img)|*.img";??
  • ????????this.openFileDialog1.Title?=?"打開影像數據";??
  • ????????this.openFileDialog1.Multiselect?=?false;??
  • ????????string?fileName?=?"";??
  • ????????if?(this.openFileDialog1.ShowDialog()?==?DialogResult.OK)??
  • ????????{??
  • ????????????fileName?=?this.openFileDialog1.FileName;??
  • ????????????string?filepath;??
  • ????????????string?file;??
  • ????????????string?file1;??
  • ????????????int?lastIndex;??
  • ????????????lastIndex?=?fileName.LastIndexOf(@"");??
  • ????????????filepath?=?fileName.Substring(0,?lastIndex);??
  • ????????????file?=?fileName.Substring(lastIndex?+?1);??
  • ????????????//導入SDE數據庫??
  • ????????????rasterWorkspaceEx?=?workspace?as?IRasterWorkspaceEx;??
  • ????????????IWorkspaceFactory?tifwpf?=?new?RasterWorkspaceFactoryClass();??
  • ????????????IWorkspace?tifwp?=?tifwpf.OpenFromFile(filepath,?0);??
  • ????????????IRasterWorkspace?tifrwp?=?tifwp?as?IRasterWorkspace;??
  • ????????????IRasterDataset?rasterDataset?=?tifrwp.OpenRasterDataset(file);??
  • ????????????lastIndex?=?file.LastIndexOf(@".");??
  • ????????????file1?=?file.Substring(0,?lastIndex);??
  • ????????????imortRasterData(filepath,?file,?file1);??
  • ????????????MessageBox.Show("導入成功");??
  • ????????}??
  • ????}??


  • [csharp]?view plaincopy
  • private?void?imortRasterData(string?strRasterFileDir,?string?strRasterFileName,?string?strOutName)??
  • ????{??
  • ????????try??
  • ????????{??
  • ????????????//判斷是否有重名現象??
  • ????????????IWorkspace2?pWS2?=?workspace?as?IWorkspace2;??
  • ????????????//如果名稱已存在??
  • ????????????if?(pWS2.get_NameExists(esriDatasetType.esriDTRasterDataset,?strOutName))??
  • ????????????{??
  • ????????????????DialogResult?result;??
  • ????????????????result?=?MessageBox.Show(this,?"柵格文件名??"?+?strOutName?+?"??在數據庫中已存在!"?+?"\r是否覆蓋?",?"相同文件名",?MessageBoxButtons.YesNo,?MessageBoxIcon.Information,?MessageBoxDefaultButton.Button1);??
  • ????????????????//覆蓋原矢量要素??
  • ????????????????if?(result?==?DialogResult.Yes)??
  • ????????????????{??
  • ????????????????????IRasterWorkspaceEx?pRWs?=?workspace?as?IRasterWorkspaceEx;??
  • ????????????????????IDataset?pDataset?=?pRWs.OpenRasterDataset(strOutName)?as?IDataset;??
  • ????????????????????pDataset.Delete();??
  • ????????????????????pDataset?=?null;??
  • ????????????????}??
  • ????????????????else?if?(result?==?DialogResult.No)??
  • ????????????????{??
  • ????????????????????return;??
  • ????????????????}??
  • ????????????}??
  • ????????????IWorkspaceFactory?pRasterWsFac?=?new?RasterWorkspaceFactoryClass();??
  • ????????????IWorkspace?pWs?=?pRasterWsFac.OpenFromFile(strRasterFileDir,?0);??
  • ????????????IRasterDataset?pRasterDs?=?null;??
  • ????????????IRasterWorkspace?pRasterWs;??
  • ????????????if?(!(pWs?is?IRasterWorkspace))??
  • ????????????{??
  • ????????????????return;??
  • ????????????}??
  • ????????????pRasterWs?=?pWs?as?IRasterWorkspace;??
  • ????????????pRasterDs?=?pRasterWs.OpenRasterDataset(strRasterFileName);??
  • ????????????ISaveAs2?saveAs2?=?(ISaveAs2)pRasterDs;??
  • ????????????IRasterStorageDef?rasterStorageDef?=?new?RasterStorageDefClass();??
  • ????????????IRasterStorageDef2?rasterStorageDef2?=?(IRasterStorageDef2)rasterStorageDef;??
  • ????????????rasterStorageDef2.CompressionType?=esriRasterCompressionType.esriRasterCompressionUncompressed;??
  • ????????????rasterStorageDef2.CompressionQuality?=?100;??
  • ????????????rasterStorageDef2.Tiled?=?true;??
  • ????????????rasterStorageDef2.TileHeight?=?128;??
  • ????????????rasterStorageDef2.TileWidth?=?128;??
  • ????????????saveAs2.SaveAsRasterDataset(strOutName,?workspace,?"gdb",?rasterStorageDef2);??
  • ????????}??
  • ????????catch?(Exception?ex)??
  • ????????{??
  • ????????????MessageBox.Show(ex.ToString());??
  • ????????????return;??
  • ????????}??
  • ????}??
  • ?

    7.從SDE中讀取數據

    [csharp]?view plaincopy
  • private?void?ReadFromSDE_Click(object?sender,?EventArgs?e)??
  • ????{??
  • ????????this.cbbDataSet.Items.Clear();??
  • ????????this.FeatureLayer.Items.Clear();??
  • ????????this.RasterLayer.Items.Clear();??
  • ????????IEnumDatasetName?enumDatasetName;??
  • ????????IDatasetName?datasetName;??
  • ????????//獲取矢量數據集??
  • ????????enumDatasetName?=?workspace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);??
  • ????????datasetName?=?enumDatasetName.Next();??
  • ????????while?(datasetName?!=?null)??
  • ????????{??
  • ????????????this.cbbDataSet.Items.Add(datasetName.Name);??
  • ????????????datasetName?=?enumDatasetName.Next();??
  • ????????}??
  • ????????//獲取圖層名??
  • ????????enumDatasetName=workspace.get_DatasetNames(esriDatasetType.esriDTFeatureClass);??
  • ????????datasetName?=?enumDatasetName.Next();??
  • ????????while?(datasetName?!=?null)??
  • ????????{??
  • ????????????this.FeatureLayer.Items.Add(datasetName.Name);??
  • ????????????datasetName?=?enumDatasetName.Next();??
  • ????????}??
  • ????????//獲取柵格圖層名??
  • ????????enumDatasetName?=?workspace.get_DatasetNames(esriDatasetType.esriDTRasterDataset);??
  • ????????datasetName?=?enumDatasetName.Next();??
  • ????????while?(datasetName?!=?null)??
  • ????????{??
  • ????????????this.RasterLayer.Items.Add(datasetName.Name);??
  • ????????????datasetName?=?enumDatasetName.Next();??
  • ????????}??
  • ????????MessageBox.Show("讀取成功");??
  • ????}??
  • 8.遍歷數據集中的文件

    [csharp]?view plaincopy
  • private?void?cbbDataSet_TextChanged(object?sender,?EventArgs?e)??
  • ????{??
  • ????????this.FeatureLayer.Items.Clear();??
  • ????????IDataset?dataset;??
  • ????????IEnumDataset?enumDataset;??
  • ????????enumDataset?=?workspace.get_Datasets(esriDatasetType.esriDTFeatureDataset);??
  • ????????dataset?=?enumDataset.Next();??
  • ????????IDataset?pDataset?=?null;??
  • ????????while?(dataset?!=?null)??
  • ????????{??
  • ????????????if?(dataset.Name?==?this.cbbDataSet.Text)??
  • ????????????{??
  • ????????????????pDataset?=?dataset?as?IDataset;??
  • ????????????????break;??
  • ????????????}??
  • ????????????dataset?=?enumDataset.Next();??
  • ????????}??
  • ????????IFeatureDataset?featDs?=?pDataset?as?IFeatureDataset;??
  • ????????IFeatureClassContainer?fcContainer?=?featDs?as?IFeatureClassContainer;??
  • ????????for?(int?i?=?0;?i?<?fcContainer.ClassCount;?i++)??
  • ????????{??
  • ????????????this.FeatureLayer.Items.Add(fcContainer.get_Class(i).AliasName);??
  • ????????}??
  • ????}??
  • 9.數據的加載

    [csharp]?view plaincopy
  • private?void?btnOk_Click(object?sender,?EventArgs?e)??
  • ????{??
  • ????????//直接從sde中讀取數據.??
  • ????????if?(this.FeatureLayer.Text?!=?""?&&?this.cbbDataSet.Text?==?"")??
  • ????????{??
  • ????????????IEnumDataset?enumDataset;??
  • ????????????IDataset?dataset;??
  • ????????????IFeatureLayer?pFeatureLayer=new?FeatureLayerClass();??
  • ????????????//獲取圖層名??
  • ????????????enumDataset?=?workspace.get_Datasets(esriDatasetType.esriDTFeatureClass);??
  • ????????????dataset?=?enumDataset.Next();??
  • ????????????while?(dataset?!=?null)??
  • ????????????{??
  • ????????????????if?(dataset.Name.ToLower()?==?this.FeatureLayer.Text.ToLower())??
  • ????????????????{??
  • ????????????????????pFeatureLayer.FeatureClass?=?dataset?as?IFeatureClass;??
  • ????????????????????break;??
  • ????????????????}??
  • ????????????????dataset?=?enumDataset.Next();??
  • ????????????}??
  • ????????????this.axMapControl1.AddLayer(pFeatureLayer?as?ILayer);??
  • ????????????this.axMapControl1.Extent?=?this.axMapControl1.FullExtent;??
  • ????????}??
  • ????????//?從sde數據集中讀取數據??
  • ????????if?(this.FeatureLayer.Text?!=?""?&&?this.cbbDataSet.Text?!=?"")??
  • ????????{??
  • ????????????IDataset?dataset;??
  • ????????????IEnumDataset?enumDataset;??
  • ????????????enumDataset?=?workspace.get_Datasets(esriDatasetType.esriDTFeatureDataset);??
  • ????????????dataset?=?enumDataset.Next();??
  • ????????????IDataset?pDataset?=?null;??
  • ????????????while?(dataset?!=?null)??
  • ????????????{??
  • ????????????????if?(dataset.Name?==?this.cbbDataSet.Text)??
  • ????????????????{??
  • ????????????????????pDataset?=?dataset?as?IDataset;??
  • ????????????????????break;??
  • ????????????????}??
  • ????????????????dataset?=?enumDataset.Next();??
  • ????????????}??
  • ????????????IFeatureDataset?featDs?=?pDataset?as?IFeatureDataset;??
  • ????????????IFeatureLayer?pFeatureLayer?=?new?FeatureLayerClass();??
  • ????????????IFeatureClassContainer?fcContainer?=?featDs?as?IFeatureClassContainer;??
  • ????????????for?(int?i?=?0;?i?<?fcContainer.ClassCount;?i++)??
  • ????????????{??
  • ????????????????if?(fcContainer.get_Class(i).AliasName.ToLower()?==?this.FeatureLayer.Text.ToLower())??
  • ????????????????{??
  • ????????????????????pFeatureLayer.FeatureClass?=?fcContainer.get_Class(i)?as?IFeatureClass;??
  • ????????????????????break;??
  • ????????????????}??
  • ????????????????//this.FeatureLayer.Items.Add(fcContainer.get_Class(i).AliasName);??
  • ????????????}??
  • ????????????this.axMapControl1.AddLayer(pFeatureLayer?as?ILayer);??
  • ????????????this.axMapControl1.Extent?=?this.axMapControl1.FullExtent;??
  • ????????}??
  • ????????//加載柵格數據??
  • ????????if?(this.RasterLayer.Text?!=?"")??
  • ????????{??
  • ????????????IDataset?dataset;??
  • ????????????IEnumDataset?enumDataset;??
  • ????????????enumDataset?=?workspace.get_Datasets(esriDatasetType.esriDTRasterDataset);??
  • ????????????dataset?=?enumDataset.Next();??
  • ????????????IDataset?pDataset?=?null;??
  • ????????????while?(dataset?!=?null)??
  • ????????????{??
  • ????????????????if?(dataset.Name.ToLower()?==?this.RasterLayer.Text.ToLower())??
  • ????????????????{??
  • ????????????????????pDataset?=?dataset?as?IDataset;??
  • ????????????????????break;??
  • ????????????????}??
  • ????????????????dataset?=?enumDataset.Next();??
  • ????????????}??
  • ????????????IRasterDataset?pRasterDataset?=?dataset?as?IRasterDataset;??
  • ????????????IRasterLayer?pRasLyr=new?RasterLayerClass();??
  • ????????????pRasLyr.CreateFromDataset(pRasterDataset);??
  • ????????????this.axMapControl1.AddLayer(pRasLyr?as?ILayer);??
  • ????????????this.axMapControl1.Extent?=?this.axMapControl1.FullExtent;??
  • ????????}??
  • ????????MessageBox.Show("加載成功");??
  • ????} ?
  • 總結

    以上是生活随笔為你收集整理的DE连接,创建数据集,数据导入以及数据导出(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。