internal static ImportResult ImportShpToDatasource(string filePath, Datasource datasource, string targetTableName) { ImportSettingSHP importSettingSHP = new ImportSettingSHP(); importSettingSHP.IsAttributeIgnored = false; importSettingSHP.IsImportAs3D = false; //设置当同名数据集存在时导入的模式,如果存在名字冲突,则覆盖(Overwrite) importSettingSHP.ImportMode = ImportMode.Overwrite; //设置需要导入的数据路径信息 importSettingSHP.SourceFilePath = filePath; //设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码 importSettingSHP.SourceFileCharset = Charset.ANSI; //设置要导入的目标数据源 importSettingSHP.TargetDatasource = datasource; //设置目标数据集名称 importSettingSHP.TargetDatasetName = targetTableName; importSettingSHP.TargetEncodeType = EncodeType.None; DataImport importer = new DataImport(); importer.ImportSettings.Add(importSettingSHP); //数据导入mysql数据库 ImportResult result = importer.Run(); return(result); }
/// <summary> ///udb中导入shp /// </summary> /// <param name="importPath"></param> public string ImportShp(string importPath, DatasourceConnectionInfo info) { try { string name = importPath.Substring(importPath.LastIndexOf("\\")+1); //wks.Datasources.Open(info); // 1. 构建数据源连接对象。 // info.Database = @"G:\数据转换\测试数据\Test\text.udb";数据库型 //DatasourceConnectionInfo info = new DatasourceConnectionInfo(); //info.Server = sourceUDB;//如@"G:\数据转换\测试数据\Test\text.udb"; ImportSettingSHP importSettingSHP = new ImportSettingSHP(); importSettingSHP.ImportMode = ImportMode.Overwrite;//可复写 importSettingSHP.SourceFilePath = importPath; importSettingSHP.TargetDatasourceConnectionInfo = info; //importSettingSHP.IsAttributeIgnored = false; // 3. 获取导入设置对象的导入信息集合(ImportDataInfos),设置目标数据集的名字。默认为原名 //ImportDataInfo dataInfos = importSettingSHP.GetTargetDataInfos(""); //importSettingSHP.SetTargetDataInfos(dataInfos); // 4. 构建数据导入类对象(DataImport),构建并设置导入设置对象集合。 DataImport import1 = new DataImport(); ImportSettings settings = import1.ImportSettings; settings.Add(importSettingSHP); ImportResult dd = import1.Run(); i++; if (dd.FailedSettings.Length != 0) return "【shp数据导入】" + name + "导入失败!请检查数据是否含有有效记录。\t\n"; return null; } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } }
private void ImportShpDirectly(string filePath) { Workspace workspace = new Workspace(); DatasourceConnectionInfo info = new DatasourceConnectionInfo(); //mysql数据源 //设置数据源连接的引擎类型 info.EngineType = EngineType.MySQL; //设置数据库连接字符串 info.Server = server; info.Database = database; info.User = userName; info.Password = password; info.Driver = driver; info.IsAutoConnect = true; info.Alias = "MySQL"; //不能为空 // 打开数据库数据源 //超图sdk不能直接连接空数据库,需要使用Create方法新建数据库,才有超图“系统表” Datasource datasource = workspace.Datasources.Open(info); if (datasource != null) { ImportSettingSHP importSettingSHP = new ImportSettingSHP(); importSettingSHP.IsAttributeIgnored = false; importSettingSHP.IsImportAs3D = false; //设置当同名数据集存在时导入的模式,如果存在名字冲突,则覆盖(Overwrite) importSettingSHP.ImportMode = ImportMode.Overwrite; //设置需要导入的数据路径信息 importSettingSHP.SourceFilePath = filePath; //设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码 importSettingSHP.SourceFileCharset = Charset.ANSI; //设置要导入的目标数据源 importSettingSHP.TargetDatasource = datasource; //设置目标数据集名称 importSettingSHP.TargetDatasetName = targetTableName; importSettingSHP.TargetEncodeType = EncodeType.None; DataImport importer = new DataImport(); importer.ImportSettings.Add(importSettingSHP); //数据导入mysql数据库 ImportResult result = importer.Run(); if (result.FailedSettings.Length == 0) { Console.WriteLine($"导入{filePath}成功!"); } else { Console.WriteLine($"导入{filePath}失败!"); } } // 释放工作空间资源 info.Dispose(); workspace.Dispose(); }
public void LoadShp(string _shpFilePath) { SuperMap.Data.Conversion.DataImport m_dataImport = new SuperMap.Data.Conversion.DataImport(); m_dataImport.ImportSettings.Clear(); ImportSettingSHP imgSetting = new ImportSettingSHP(); imgSetting.ImportMode = ImportMode.Overwrite; imgSetting.SourceFilePath = _shpFilePath; imgSetting.TargetDatasource = UCEarthGlobal.m_MainSceneControl.Scene.Workspace.Datasources["Default"]; imgSetting.IsAttributeIgnored = false; m_dataImport.ImportSettings.Add(imgSetting); m_dataImport.Run(); IEnumerable <DatasetVector> dataimgList = UCEarthGlobal.m_MainSceneControl.Scene.Workspace.Datasources["Default"].Datasets.OfType <DatasetVector>(); DatasetVector importResult = dataimgList.ToList().Find(v => v.Name == System.IO.Path.GetFileNameWithoutExtension(_shpFilePath)) as DatasetVector; }
/// <summary> /// 导入为shp /// </summary> public void ImportToShp() { //-------------数据库打开工作空间 workspace1 = new SuperMap.Data.Workspace(); /* WorkspaceconnectionInfo workspaceconnectionInfo = new WorkspaceconnectionInfo(); * workspaceconnectionInfo.Type = WorkspaceType.Oracle; * workspaceconnectionInfo.Server = "ORCL"; * workspaceconnectionInfo.Database = ""; * workspaceconnectionInfo.Name = "workspace"; * workspaceconnectionInfo.User = "******"; * workspaceconnectionInfo.Password = "******"; * workspace1.Open(workspaceconnectionInfo);*/ workspace1.Open(gkfqd.Common.Tool.GetConnectionInfo()); importDatasource = workspace1.Datasources[gkfqd.Common.Tool.GetWorkspaceDataDatasources()]; dataImport = new DataImport(); try { dataImport.ImportSettings.Clear(); ImportSettingSHP shpSetting = new ImportSettingSHP(); shpSetting.ImportMode = ImportMode.Overwrite; string str = System.IO.Directory.GetCurrentDirectory(); //复制选择文件到临时文件夹,目的是重命名文件,导入到数据库指定文件中 String targetPath = str + "\\tempFolder\\temp_gkfqd.shp"; shpSetting.SourceFilePath = targetPath; shpSetting.TargetDatasource = importDatasource; dataImport.ImportSettings.Add(shpSetting); dataImport.Run(); importResultShp = importDatasource.Datasets["temp_gkfqd"] as DatasetVector; mapControl1.Map.Workspace = workspace1; mapControl1.Map.Layers.Clear(); mapControl1.Map.Layers.Add(importResultShp, true); mapControl1.Map.ViewEntire(); mapControl1.Map.Refresh(); } catch (Exception ex) { Trace.WriteLine(ex.Message); MessageBox.Show(ex.Message); } RefreshDataGridView(); }