// ソース及びユーザ選択でその他のワークスペース IWorkspaceワークスペース= NULL ; // ワークスペースは、一般的にデータベースに相当する // ワークスペースの種類、それはまた、データベースのタイプとして理解することができる @の可能性SHP:esriFileSystemWorkspace @ esriLocalDatabaseWorkspace:おそらくGDBファイル、MDB // esriRemoteDatabaseWorkspace:おそらくSDE esriWorkspaceType workspaceType = workspace.Type; // ローカルファイルタイプ(例えばSHP、ファイルGDB、MDB)へのパスは、意味は、それらのファイルパスである 文字列 =パス; workspace.PathName / / データベース接続構成は、SDEのために一般的に有効である IPropertySetプロパティセット=workspace.ConnectionProperties; // 以下は彼のコード値横切られる オブジェクト objNames = NULL ; オブジェクト objValue = NULL ; //はすべての値を取得し、フィールド構造が類似キー/値の形式で、パラメータ名が1のアレイであり、2はパラメータであります値配列 // パラメータは、それぞれ、オブジェクトの種類であるが、配列と文字列の実際のオブジェクト配列 propertySet.GetAllProperties(OUTの objNames、OUT objValue); 文字列 [] =名(文字列[])objNames、 オブジェクト []の値=(オブジェクト[ ])objValue; //各トラバースの値取得 のために(int型 I = 0 ; I ++は、私はnames.lengthを< ) { // パラメータ名の 文字列名= [I]名; // パラメータ値 文字列値= 値[I] .ToString(); } / / 次のコードを、それらがテストデータを持っていないので、コードを見て実行されない IF(1 == 2 ) { // ネイティブSQLを実行 // データ・タイプは、ワークスペースSDEなどのデータベースである場合、この方法は、ネイティブSQLによって実行することができる // ここでしか例えば、結果のSQLを返す挿入、更新、など、選択することはできませんしないでください workspace.ExecuteSQL(「アップデートのEee XXX = 111 SET 」); } // PSを:上記のコードは、構成SDEデータベースを得ることができますが、歪みを取得し、パスワード、AEは(一般的に使用される完全なSDE接続パラメータを取得したいので、可能ではない)、新しい接続のため再度SDE // すべてのワークスペースデータセットトラバース // get_Datasetsワークスペース・メンバーの取得方法を、一つのパラメータのデータ・タイプを取得する // インタフェースと、カーソルIEnumの先頭に類似していますクエリの結果の一部横断する IEnumDataset enumDataset = ; workspace.get_Datasets(esriDatasetType.esriDTFeatureDataset) enumDataset.Reset(); // 以下のフィーチャクラスにデータの次のセットを横断しなければならないので、そうIFeatureDataset費やさを、実際には、IDataSetの通りである タイプのIFeatureDataset FeatureDataset = ヌル; 一方、((FeatureDataset = enumDataset.Next()AS IFeatureDataset)!= NULL ) { // データベースプロパティのセット IDataSetデータセット = FeatureDataset AS IDataSet; // データセット名 文字列 datasetName = dataset.Name; // データセットタイプ esriDatasetType = DatasetType dataset.Type; // IGeoDatasetジオメトリインターフェイス関連付けられ IGeoDataset geoDataset = FeatureDataset AS IGeoDataset; // 空間参照 SpatialReference2 = ISpatialReference geoDataset.SpatialReference; // フィーチャクラスのデータセットの全ての取得 IFeatureClassContainer featureClassContainer = FeatureDataset AS IFeatureClassContainer; IEnumFeatureClass enumFeatureClass = featureClassContainer.Classes; enumFeatureClass.Reset(); IFeatureClassフィーチャクラス = ヌル; // 反復データセットのフィーチャクラス 一方、((フィーチャクラス= enumFeatureClass.Next())!= NULL ) { } // IEnumの(カーソルのように)手動解除を実行する必要があるインターフェイス始まる System.Runtime.InteropServices.Marshal.FinalReleaseComObject(enumFeatureClass); } // (カーソルのように)すべてのIEnumマニュアルリリースの冒頭に実行するようにインターフェイスを システム。 Runtime.InteropServices.Marshal.FinalReleaseComObject(enumDataset); //は、ワークスペース内のフィーチャクラスを反復 // PS:結合は、上記のコードに留意することができる、データ・セットが別のワークスペースの下にフィーチャクラスとアクセスコードフィーチャクラスを取得 enumDataset = ワークスペース.get_Datasets(esriDatasetType.esriDTFeatureClass); enumDataset.Reset(); IFeatureClass featureClass2 = enumDataset.Next()AS IFeatureClass。 一方、((featureClass2 = enumDataset.Next()AS IFeatureClass)!= NULL ) { } // (カーソルと同様に)手動解除を実行する必要がありIEnumインターフェイスを開始 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(enumDatasetを); / / (データセット内を含む)すべてのフィーチャクラスのワークスペースを取得する 一覧<IFeatureClass> lstFeatureClass = WorkspaceEdmHelper.GetAllFeatureClassInWorkspace(ワークスペースAS IFeatureWorkspace); // フィーチャクラスを操作するためのワークスペースインターフェイス IFeatureWorkspace featureWorkspace =ワークスペースAS IFeatureWorkspace; // 次のコードは、彼らがテストを持っていないので、データは、実行されないコードを見て IF(1 == 2 ) { // 取得フィーチャクラス名によって // PS:フィーチャクラスも異なるトラバースこの時点で設定され、そのようなデータを取得してもよい featureClass2 = featureWorkspace.OpenFeatureClass(「WWWを」); // 名前を取得しますデータセット FeatureDataset = featureWorkspace.OpenFeatureDataset(「RRR 」); // データベースやファイルパスのパラメータを経由して、新しいデータベースまたはデータベースを開く // ファイルGDBの作成、パラメータファイルは、フォルダ1、パラメータ2は、データベース名です // ので、そのワークスペースを作成するためのファイルGDB相当を作成するワークスペースと同等のデータベースファイルGDB、 = WorkspaceEdmHelper.CreateFileGdb featureWorkspace(" C:\\ AAA "、" test.gdb " ); //はパーソナルGDB(MDB)を作成し、パラメータ1は、ファイルパラメータ2は、データベースの名前であるフォルダである (featureWorkspace = WorkspaceEdmHelper.CreatePersonalGdb " C:\\ AAA " " Test.mdbの" ); }
ます。https://www.cnblogs.com/cannel/p/11074323.htmlで再現