public IWorkspace OpenLoaclGeoDataBase(string path, EnumLoaclGeoDatabaseType type) { try { IWorkspaceFactory pTargetWsf = null; switch (type) { case EnumLoaclGeoDatabaseType.MDB: pTargetWsf = new AccessWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.GDB: pTargetWsf = new FileGDBWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.SHP: pTargetWsf = new ShapefileWorkspaceFactory(); break; } return(pTargetWsf.OpenFromFile(path, 0)); } catch (Exception ex) { ErrorMessage = ex.Message; return(null); } }
public static void load_personal_database() {//代开个人地理数据库 IWorkspaceFactory pAccessWorkspaceFactory; OpenFileDialog pOpenFileDialog = new OpenFileDialog { Filter = "Personal Geodatabase(*.mdb)|*.mdb", Title = "打开PersonGeodatabase文件" }; pOpenFileDialog.ShowDialog(); string pFullPath = pOpenFileDialog.FileName; if (pFullPath == "") { return; } pAccessWorkspaceFactory = new AccessWorkspaceFactory(); //获取工作空间 IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(pFullPath, 0); //加载工作空间里的数据 AddAllDataset(pWorkspace, mainForm.mainform.mainMapControl); }
public void OpenAccessNetwork(string AccessFileName, string FeatureDatasetName) { IWorkspaceFactory ipWorkspaceFactory; IWorkspace ipWorkspace; IFeatureWorkspace ipFeatureWorkspace; IFeatureDataset ipFeatureDataset; CloseWorkspace(); //open the mdb ipWorkspaceFactory = new AccessWorkspaceFactory(); ipWorkspace = ipWorkspaceFactory.OpenFromFile(AccessFileName, 0); //et the FeatureWorkspace ipFeatureWorkspace = ipWorkspace as IFeatureWorkspace; //open the FeatureDataset ipFeatureDataset = ipFeatureWorkspace.OpenFeatureDataset(FeatureDatasetName); //initialize Network and Map (m_ipNetwork, m_ipMap) if (InitializeNetworkAndMap(ipFeatureDataset)) { MessageBox.Show("Error!"); } }
private void CreateDEM() { IWorkspaceFactory pWsF = new AccessWorkspaceFactory(); IFeatureWorkspace pWs = pWsF.OpenFromFile(textEdit1.Text, 0) as IFeatureWorkspace; IFeatureDataset pFDs = pWs.OpenFeatureDataset("GCD"); IFeatureClass pFc = pFDs as IFeatureClass; double power = 1; object Missing = Type.Missing; IFields pFields = pFc.Fields; int index = pFields.FindFieldByAliasName("高程"); string z = pFields.get_Field(index).Name; IFeatureClassDescriptor feaDes = new FeatureClassDescriptorClass(); feaDes.Create(pFc, null, z); IGeoDataset inGeoDs = feaDes as IGeoDataset; IRasterAnalysisEnvironment rasterEnv = new RasterInterpolationOpClass(); double cellSize = 20; object cellSizeObj = cellSize; rasterEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellSizeObj); IRasterRadius radius = new RasterRadiusClass(); radius.SetVariable(12, Missing); IInterpolationOp2 interOp = rasterEnv as IInterpolationOp2; IGeoDataset outGeoDs = interOp.IDW(inGeoDs, power, radius, ref Missing); pWs = pWsF.OpenFromFile(textEdit2.Text, 0) as IFeatureWorkspace; }
public static IWorkspace OpenAccessWorkSpace(string accessFilePath) { IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactory(); IWorkspace workspace = workspaceFactory.OpenFromFile(accessFilePath, 0); return(workspace); }
public static IWorkspace GetmdbWorkspace(string mdbFilePath) { AccessWorkspaceFactory accessWorkspaceFactory = new AccessWorkspaceFactory(); IWorkspace workspace = accessWorkspaceFactory.OpenFromFile(mdbFilePath, 0); return(workspace); }
private IFeatureClass LoadMetaData() { string path = Config.GetConfigValue("2DMdbPipe"); IWorkspaceFactory pWsF = new AccessWorkspaceFactory(); IFeatureWorkspace pFWs = pWsF.OpenFromFile(path, 0) as IFeatureWorkspace; if (pFWs == null) { return(null); } IFeatureDataset pFDs = pFWs.OpenFeatureDataset("Assi_10"); if (pFDs == null) { return(null); } IEnumDataset pEnumDs = pFDs.Subsets; IDataset fDs; IFeatureClass fc = null; while ((fDs = pEnumDs.Next()) != null) { if (fDs.Name == "Metadata") { fc = fDs as IFeatureClass; } } return(fc); }
private IFeatureClass GetUpdateRegionFC() { try { string path = Config.GetConfigValue("2DMdbPipe"); IWorkspaceFactory pWsF = new AccessWorkspaceFactory(); IFeatureWorkspace pFWs = pWsF.OpenFromFile(path, 0) as IFeatureWorkspace; this.m_Workspace = pFWs as IWorkspace; if (pFWs == null) { return(null); } IFeatureDataset pFDs = pFWs.OpenFeatureDataset("Assi_10"); if (pFDs == null) { return(null); } IEnumDataset pEnumDs = pFDs.Subsets; IDataset fDs; IFeatureClass fc = null; while ((fDs = pEnumDs.Next()) != null) { if (fDs.Name == "UpdataRegionPLY500") { fc = fDs as IFeatureClass; } } return(fc); } catch (System.Exception ex) { return(null); } }
//注册要素类 /// <summary> /// 返回true说明FeatureClass存在,返回false说明不存在,重新创建 /// </summary> /// <param name="IN_ShapePath"></param> /// <returns></returns> private bool PRV_AddFeatureClass(string IN_ShapePath) { string Temp_Direction = System.IO.Path.GetDirectoryName(IN_ShapePath); //该Shp文件的目录 string Temp_Name = System.IO.Path.GetFileNameWithoutExtension(IN_ShapePath); //该Shp文件的名称 IWorkspaceFactory Temp_ShapeWorkFactory = new ShapefileWorkspaceFactory(); IFeatureWorkspace Temp_ShapeWorkspace = Temp_ShapeWorkFactory.OpenFromFile(Temp_Direction, 0) as IFeatureWorkspace; IWorkspaceFactory Temp_AccessWorkFactory = new AccessWorkspaceFactory(); IFeatureWorkspace Temp_Workspace = Temp_AccessWorkFactory.OpenFromFile(S_MDBFile, 0) as IFeatureWorkspace; IFeatureClassContainer tem_FeatureClassContainer = (IFeatureClassContainer)FDS_Featuredataset; IEnumFeatureClass pEnumFeatureClass = (IEnumFeatureClass)tem_FeatureClassContainer.Classes; IFeatureClass tem_FeatureClass = pEnumFeatureClass.Next(); while (null != tem_FeatureClass) { if (Temp_Name == tem_FeatureClass.AliasName) {// return true; } tem_FeatureClass = pEnumFeatureClass.Next(); } IFeatureClass Temp_FeatureClass = Temp_ShapeWorkspace.OpenFeatureClass(Temp_Name); FeatureClassToFeatureClass Temp_FCToFC = new FeatureClassToFeatureClass(IN_ShapePath, S_MDBFile + "\\" + FDS_Featuredataset.Name, Temp_Name);//将Shp文件导入要素数据集 GP_Progress = GP_Tool.ExecuteAsync(Temp_FCToFC); TH_TimeSpan = new Thread(PRV_GetStatus);//开辟线程计时 TH_TimeSpan.Start(); TH_TimeSpan.Join(); return(false); // IFeatureClassContainer ss = (FDS_Featuredataset.Workspace as IFeatureWorkspace).OpenFeatureDataset(FDS_Featuredataset.Name) as IFeatureClassContainer; // Console.WriteLine("完成"); }
public static IWorkspace CreatePersonGDB(string string_0) { IWorkspace workspace = null; IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory(); try { IWorkspaceName workspaceName = accessWorkspaceFactoryClass.Create(System.IO.Path.GetDirectoryName(string_0), System.IO.Path.GetFileNameWithoutExtension(string_0), null, 0); workspace = (workspaceName as IName).Open() as IWorkspace; } catch (COMException cOMException1) { COMException cOMException = cOMException1; int errorCode = cOMException.ErrorCode; MessageBox.Show(string.Concat("错误代码:", errorCode.ToString(), "\r\n", cOMException.Message)); } catch (Exception exception) { } ComReleaser.ReleaseCOMObject(accessWorkspaceFactoryClass); accessWorkspaceFactoryClass = null; return(workspace); }
private void AddGDBLayerToolStripMenuItem_Click(object sender, EventArgs e) { IWorkspaceFactory pAccessWorkspaceFactory; OpenFileDialog pOpenFileDialog = new OpenFileDialog { Filter = "Personal Geodatabase(*.mdb)|*.mdb", Title = "打开PersonGeodatabase文件" }; pOpenFileDialog.ShowDialog(); string pFullPath = pOpenFileDialog.FileName; if (pFullPath == "") { return; } pAccessWorkspaceFactory = new AccessWorkspaceFactory(); //using ESRI.ArcGIS.DataSourcesGDB; //获取工作空间 IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(pFullPath, 0); Func.ClearAllData(); //新增删除数据 //加载工作空间里的数据 Func.AddAllDataset(pWorkspace, axMapControl1); }
public override void OnClick() { IGxObject firstObject = ((IGxSelection)_context.GxSelection).FirstObject; if (firstObject is IGxFile) { string path = (firstObject as IGxFile).Path; path = (path[path.Length - 1] != '\\' ? string.Concat(path, "\\新建个人数据库") : string.Concat(path, "新建个人数据库")); string str = string.Concat(path, ".mdb"); int num = 1; while (File.Exists(str)) { num++; str = string.Concat(path, " (", num.ToString(), ").mdb"); } IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory(); try { IWorkspaceName workspaceName = accessWorkspaceFactoryClass.Create(Path.GetDirectoryName(str), Path.GetFileNameWithoutExtension(str), null, 0); IGxObject gxDatabase = new GxDatabase(); (gxDatabase as IGxDatabase).WorkspaceName = workspaceName; IGxCatalog catalog = GxCatalogCommon.GetCatalog(firstObject); gxDatabase.Attach(firstObject, catalog); catalog.ObjectAdded(gxDatabase); } catch (Exception exception) { MessageBox.Show(exception.Message); } } }
//选择路径 private void btnServer_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "SHP数据|*.shp|MDB数据|*.mdb"; if (dlg.ShowDialog() == DialogResult.OK) { Cursor = Cursors.WaitCursor; textBoxPath.Text = dlg.FileName; if (dlg.FileName.Substring(dlg.FileName.LastIndexOf(".") + 1).ToLower() == "mdb") { comboBoxFeature.Enabled = true; IWorkspaceFactory wf = new AccessWorkspaceFactory(); IFeatureWorkspace pFeatureWorkspaceMDB = wf.OpenFromFile(@dlg.FileName, 0) as IFeatureWorkspace; IWorkspace pWorkspaceMDB = pFeatureWorkspaceMDB as IWorkspace; List <string> list = Getfeatureclass(pWorkspaceMDB); for (int ii = 0; ii < list.Count; ii++) { comboBoxFeature.Items.Add(list[ii]); } } Cursor = Cursors.Default; } if (comboBoxFeature.Items.Count > 0) { comboBoxFeature.SelectedIndex = 0; } }
/// <summary> /// 打开数据 /// </summary> private void OpenGDB() { IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactory() as IWorkspaceFactory; IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(Global.GdbPath, 0) as IWorkspace; Global.pWorkspace1 = pWorkspace; }
private IWorkspace GetWorkSpace() { IWorkspaceFactory pWsF = new AccessWorkspaceFactory(); string path = Config.GetConfigValue("2DDocument"); IWorkspace pWs = pWsF.OpenFromFile(path, 0); return(pWs); }
public static IWorkspace OpenWorkspace(IPropertySet ipropertySet_0) { IWorkspace workspace = null; IWorkspaceFactory factory; Exception exception; if (ipropertySet_0.Count == 1) { object obj2; object obj3; string str2 = ""; ipropertySet_0.GetAllProperties(out obj2, out obj3); if (((string[])obj2)[0] == "DATABASE") { str2 = System.IO.Path.GetExtension(((object[])obj3)[0].ToString()).ToLower(); } if (str2 == ".mdb") { factory = new AccessWorkspaceFactory(); try { workspace = factory.Open(ipropertySet_0, 0); } catch (Exception exception1) { exception = exception1; MessageBox.Show(exception.Message); } return(workspace); } if (str2 == ".gdb") { factory = new FileGDBWorkspaceFactory(); try { workspace = factory.Open(ipropertySet_0, 0); } catch (Exception exception2) { exception = exception2; MessageBox.Show(exception.Message); } } return(workspace); } factory = new SdeWorkspaceFactory(); try { workspace = factory.Open(ipropertySet_0, 0); } catch (Exception exception3) { exception = exception3; MessageBox.Show(exception.Message); } return(workspace); }
private void LoadDataset() { IWorkspaceFactory pAccessWorkspaceFactory; string pFullPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\data\\教室数据\\classroom.mdb"; pAccessWorkspaceFactory = new AccessWorkspaceFactory(); //using ESRI.ArcGIS.DataSourcesGDB; //获取工作空间 IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(pFullPath, 0); IEnumDataset pEnumDataset = pWorkspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny); pEnumDataset.Reset(); //将Enum数据集中的数据一个个读到DataSet中 IDataset pDataset = pEnumDataset.Next(); //使用IQueryDef接口的对象来定义和查询属性信息。通过IWorkspace接口的CreateQueryDef()方法创建该对象。 IQueryDef queryDef = ((IFeatureWorkspace)pDataset.Workspace).CreateQueryDef(); //设置所需查询的表格名称为dataset的名称 queryDef.Tables = pDataset.Name; string que = null; //返回所有值 queryDef.WhereClause = que; //执行查询并返回ICursor接口的对象来访问整个结果的集合 ICursor cursor = queryDef.Evaluate(); IRow row = cursor.NextRow(); dt.Columns.Add(new DataColumn("学部", typeof(string))); //在表中添加int类型的列 dt.Columns.Add(new DataColumn("教室", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("教学楼", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("人数", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("语音多媒体", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("周次", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("日期", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("1-2", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("3-4", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("3-5", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("6-7", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("8-9", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("8-10", typeof(string))); //在表中添加string类型的Name列 dt.Columns.Add(new DataColumn("11-13", typeof(string))); //在表中添加string类型的Name列 while (row != null) { DataRow dr1 = dt.NewRow(); for (int i = 1; i < 15; i++) { dr1[i - 1] = row.get_Value(i).ToString(); } dt.Rows.Add(dr1); row = cursor.NextRow(); } dataGridView_classquery1.DataSource = dt; dataGridView_classquery2.DataSource = dt; }
/// <summary> /// 创建数据库 /// </summary> /// <param name="mdbFolder"></param> /// <param name="mdbName"></param> /// <returns></returns> public IWorkspace CreateMdb(string mdbFolder, string mdbName) { IWorkspaceFactory pFtWsFct = new AccessWorkspaceFactory(); IWorkspaceName workspaceName = pFtWsFct.Create(mdbFolder, mdbName, null, 0); IFeatureWorkspace pFeatureWorkSpace = (workspaceName as IName).Open() as IFeatureWorkspace; IWorkspace pWorkspace = (workspaceName as IName).Open() as IWorkspace; return(pWorkspace); }
// 测试导入道路 public static Form TestCase1() { var factory2 = new CadWorkspaceFactory(); try { var path = System.IO.Path.GetDirectoryName(@"C:\Temp\Traffic\temp.dxf"); var ws2 = factory2.OpenFromFile(path, 0) as IFeatureWorkspace; var fc2 = ws2.OpenFeatureClass(System.IO.Path.GetFileName(@"C:\Temp\Traffic\temp.dxf") + ":polyline"); var cursor = fc2.Search(null, true); var f = cursor.NextFeature(); var lst = new List<IPolyline>(); while (f != null) { var geo = f.ShapeCopy; if (!(geo is IPolyline) || geo.IsEmpty == true) { MessageBox.Show("当前CAD文件中包含的路线类型信息不正确,请检查。", "注意"); Marshal.ReleaseComObject(cursor); return null; } else { lst.Add(geo as IPolyline); } f = cursor.NextFeature(); } Marshal.ReleaseComObject(cursor); if (lst.Count == 0) { MessageBox.Show("当前CAD文件中不包含路线信息,请检查。", "注意"); return null; } RoadMerger.FragmentThreshold = 20; var ls = RoadMerger.SplitLine(lst); var factory = new AccessWorkspaceFactory(); var ws = factory.OpenFromFile(@"C:\Temp\Traffic\db.mdb", 0) as IFeatureWorkspace; var fc = ws.OpenFeatureClass("AROAD"); var historyFC = ws.OpenFeatureClass("ROADHIS"); var nodeFC = ws.OpenFeatureClass("NODE"); var lines = RoadMerger.QueryIntersects(ls, fc); var form = new ImportRoadForm(ls, fc, historyFC, nodeFC, lines); return form; } catch (Exception ex) { MessageBox.Show(ex.ToString(), "注意"); return null; } }
public override void Run(object sender, System.EventArgs e) { string path = Config.GetConfigValue("2DMdbPipe"); IWorkspaceFactory pWsF = new AccessWorkspaceFactory(); IWorkspace pWs = pWsF.OpenFromFile(path, 0); FrmSDEBackup m_formSDEBackup = new FrmSDEBackup(pWs); m_formSDEBackup.ShowDialog(); }
public static IWorkspace OpenWorkspace(IPropertySet ipropertySet_0) { object obj; object obj1; IWorkspaceFactory sdeWorkspaceFactoryClass; IWorkspace workspace = null; if (ipropertySet_0.Count != 1) { sdeWorkspaceFactoryClass = new SdeWorkspaceFactory(); try { workspace = sdeWorkspaceFactoryClass.Open(ipropertySet_0, 0); } catch (Exception exception) { MessageBox.Show(exception.Message); } } else { string str = ""; string lower = ""; ipropertySet_0.GetAllProperties(out obj, out obj1); if (((string[])obj)[0] == "DATABASE") { str = ((object[])obj1)[0].ToString(); lower = System.IO.Path.GetExtension(str).ToLower(); } if (lower == ".mdb") { sdeWorkspaceFactoryClass = new AccessWorkspaceFactory(); try { workspace = sdeWorkspaceFactoryClass.Open(ipropertySet_0, 0); } catch (Exception exception1) { MessageBox.Show(exception1.Message); } } else if (lower == ".gdb") { sdeWorkspaceFactoryClass = new FileGDBWorkspaceFactory(); try { workspace = sdeWorkspaceFactoryClass.Open(ipropertySet_0, 0); } catch (Exception exception2) { MessageBox.Show(exception2.Message); } } } return(workspace); }
/// <summary> /// 获取网络数据集 /// </summary> /// <param name="dbFileName">文件路径</param> /// <returns></returns> public static INetworkCollection OpenNetworkCollection(string dbFileName, string datasetName) { IWorkspaceFactory pWF = new AccessWorkspaceFactory(); IWorkspace pWorkspace = pWF.OpenFromFile(dbFileName, 0); IFeatureWorkspace pFW = pWorkspace as IFeatureWorkspace; IFeatureDataset pFeatureDataset = pFW.OpenFeatureDataset(datasetName); INetworkCollection pNetColl = pFeatureDataset as INetworkCollection; return(pNetColl); }
// 测试道路历史 public static Form TestCase2() { var factory = new AccessWorkspaceFactory(); var ws = factory.OpenFromFile(@"C:\Temp\Traffic\db.mdb", 0) as IFeatureWorkspace; var fc = ws.OpenFeatureClass("AROAD"); var historyFC = ws.OpenFeatureClass("ROADHIS"); var nodeFC = ws.OpenFeatureClass("NODE"); var form = new HistoryForm(8740, fc, historyFC, nodeFC, null); return form; }
public void CreateTempDB() { string text = this.tmpPath + "\\tempAccess"; this.string_1 = PahtAssistant.GetFinalFileName(text, ".mdb"); IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactory(); string directoryName = System.IO.Path.GetDirectoryName(this.string_1); string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(this.string_1); this.iworkspaceName_0 = workspaceFactory.Create(directoryName, fileNameWithoutExtension, null, 0); }
public void CreateTempDB() { string str = string.Concat(this.string_0, "\\tempAccess"); this.string_1 = PahtAssistant.GetFinalFileName(str, ".mdb"); IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory(); string directoryName = Path.GetDirectoryName(this.string_1); string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(this.string_1); this.iworkspaceName_0 = accessWorkspaceFactoryClass.Create(directoryName, fileNameWithoutExtension, null, 0); }
/// <summary> /// 打开某层Geo数据库 /// </summary> /// <param name="file"></param> /// <returns></returns> private IFeatureLayer OpenGeoDatabaselayer(string file) { IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactory(); IFeatureWorkspace pWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(file, 0); IFeatureClass pFeatureClass = pWorkspace.OpenFeatureClass("房屋"); return(new FeatureLayerClass() { FeatureClass = pFeatureClass, }); }
private IFeatureClass GetGCD() { string path = Config.GetConfigValue("2DMdbPipe"); IWorkspaceFactory pWsF = new AccessWorkspaceFactory(); IFeatureWorkspace pFWs = pWsF.OpenFromFile(path, 0) as IFeatureWorkspace; IFeatureClass pFc = pFWs.OpenFeatureClass("GCD"); //IFeatureDataset pFDs = pFWs.OpenFeatureDataset("GCD"); //if (pFDs == null) return null; //IFeatureClass pFc = pFDs as IFeatureClass; return(pFc); }
//导出xml工作空间文档 private void ExportWS_Schema(string pGDB, string XmlFile) { IWorkspaceFactory pWSF = new AccessWorkspaceFactory(); IWorkspace pWS; pWS = pWSF.OpenFromFile(pGDB, 0); IGdbXmlExport pExporter = new GdbExporter(); pExporter.ExportWorkspaceSchema(pWS, XmlFile, false, true); System.Runtime.InteropServices.Marshal.ReleaseComObject(pWSF); System.Runtime.InteropServices.Marshal.ReleaseComObject(pWS); System.Runtime.InteropServices.Marshal.ReleaseComObject(pExporter); }
private void button1_Click(object sender, EventArgs e) { //打开sqlite数据库连接 SQLiteConnection conn = new SQLiteConnection("Data Source=" + sqlitePath + ";Version=3"); conn.Open(); //加载mod_spatialite库 string sql = "SELECT load_extension('mod_spatialite');"; var command = conn.CreateCommand(); command.CommandText = sql; command.ExecuteScalar(); //SQLiteTransaction tr = conn.BeginTransaction(); //command.Transaction = tr; //利用arcgis获取access数据库连接 IWorkspaceFactory pFactory = new AccessWorkspaceFactory(); IWorkspace pWorkspace = pFactory.OpenFromFile( @"E:\Project\WindowsFormsApplication13\WindowsFormsApplication13\bin\Debug\db.mdb", 0); IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace; IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass("dk"); var features = pFeatureClass.Search(null, true); IFeature pfeature = features.NextFeature(); int j = 1; while (pfeature != null) { IGeometry pGeometry = pfeature.Shape; if (pGeometry != null) { var geometryWKB = ConvertUtils.ConvertGeometryToWkb(pGeometry); //var geometryWKT = ConvertUtils.ConvertGeometryToWkt(pGeometry); string dkbm = pfeature.get_Value(pfeature.Fields.FindField("dkbm")); string dd = BitConverter.ToString(geometryWKB).Replace("-", ""); sql = string.Format("insert into zd_cbd(id,dkbm,Shape) values('{0}',{1},GeomFromWKB(x'{2}',4545))", Guid.NewGuid(), dkbm, dd); command.CommandText = sql; command.ExecuteNonQuery(); Debug.WriteLine("成功插入第{0}条数据", j); j++; } pfeature = features.NextFeature(); //tr.Commit(); } conn.Close(); }
public bool Do() { string path = this.txtOutGDB.Text.Trim(); if (path.Length == 0) { MessageBox.Show("请选择导出位置!"); return(false); } if (!(Path.GetExtension(path).ToLower() == ".mdb")) { MessageBox.Show("请选择正确的导出位置!"); return(false); } if (!File.Exists(path)) { IWorkspaceFactory factory = new AccessWorkspaceFactory(); try { IWorkspaceName name = factory.Create(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path), null, 0); this.txtOutGDB.Tag = name; goto Label_00EC; } catch (Exception exception) { MessageBox.Show(exception.ToString()); return(false); } } IWorkspaceName name2 = new WorkspaceNameClass { WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory", PathName = path }; IWorkspace workspace = (name2 as IName).Open() as IWorkspace; if (!this.method_2(workspace, ExtractionDataHelper.m_pHelper.EnumName)) { return(false); } this.txtOutGDB.Tag = name2; Label_00EC: ExtractionDataHelper.m_pHelper.ReuseSchema = this.chkResueSchema.Checked; ExtractionDataHelper.m_pHelper.CheckOnlySchema = this.rdoType.SelectedIndex == 1; ExtractionDataHelper.m_pHelper.CheckoutWorkspaceName = this.txtOutGDB.Tag as IWorkspaceName; return(true); }
//导入xml工作空间 private void ImportWS(string dbPath, string pGDB, string XmlFile) { IWorkspaceFactory pWSF = new AccessWorkspaceFactory(); IWorkspaceName pWSN = pWSF.Create(dbPath, pGDB, null, 0); IName pName = (IName)pWSN; IWorkspace pWS = (IWorkspace)pName.Open(); //导入库结构 IGdbXmlImport pImporter = new GdbImporter(); IEnumNameMapping pEnumName = null; pImporter.GenerateNameMapping(XmlFile, pWS, out pEnumName); pImporter.ImportWorkspace(XmlFile, pEnumName, pWS, true); System.Runtime.InteropServices.Marshal.ReleaseComObject(pWS); }
public IWorkspace CreateOrOpenLoaclGeoDataBase(string path, EnumLoaclGeoDatabaseType type) { try { IWorkspaceFactory pTargetWsf = null; switch (type) { case EnumLoaclGeoDatabaseType.MDB: pTargetWsf = new AccessWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.GDB: pTargetWsf = new FileGDBWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.SHP: pTargetWsf = new ShapefileWorkspaceFactory(); break; } if (System.IO.Directory.Exists(path) || System.IO.File.Exists(path)) { if (pTargetWsf.IsWorkspace(path)) { return(pTargetWsf.OpenFromFile(path, 0)); } else { ErrorMessage = "当前工作空间已经损坏"; return(null); } } else { string sPath = System.IO.Path.GetDirectoryName(path); string sName = System.IO.Path.GetFileNameWithoutExtension(path); IWorkspaceName pWorkspaceName = pTargetWsf.Create(sPath, sName, null, 0); return(pTargetWsf.Open(pWorkspaceName.ConnectionProperties, 0)); } } catch (Exception ex) { ErrorMessage = ex.Message; return(null); } }