ArcEngine创建MDB、GDB

  • 创建MDB
                IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactoryClass();
                if (System.IO.File.Exists(filePath + @"\" + fileName + ".mdb"))
                {
                    MessageBox.Show("该MDB名称已存在,请重新命名");
                    return;
                }
                else
                {
                    IWorkspaceName workspaceName = workspaceFactory.Create(filePath, fileName, null, 0);
                    IWorkspace iwk = workspaceFactory.OpenFromFile(workspaceName.PathName, 0);
                }
  • 创建GDB
                IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass();
                if (System.IO.File.Exists(filePath + @"\" + fileName + ".gdb"))
                {
                    MessageBox.Show("该GDB名称已存在,请重新命名");
                    return;
                }
                else
                {
                    IWorkspaceName workspaceName = workspaceFactory.Create(filePath, fileName, null, 0);
                    IWorkspace iwk = workspaceFactory.OpenFromFile(workspaceName.PathName, 0);
                }
  • 创建SQL数据库
                ISpatialReference sr = prjControl1.GetSpatialReference();
    
                string server = txtServer.Text;//数据库服务名
                string dbname = txtDB.Text;//数据库名
                string user = txtUser.Text;//用户名
                string pwd = txtPwd.Text;//密码
    
                string LienseFilePath = Application.StartupPath + "\\arcgisservice.ecp";//许可文件
                ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new Geoprocessor();
                gp.OverwriteOutput = true;
                ESRI.ArcGIS.DataManagementTools.CreateEnterpriseGeodatabase cedb = new ESRI.ArcGIS.DataManagementTools.CreateEnterpriseGeodatabase();
                cedb.database_platform = "SQL_Server";
                cedb.instance_name = server;
                cedb.database_name = dbname;
                cedb.database_admin = user;
                cedb.database_admin_password = pwd;
                cedb.sde_schema = "DBO_SCHEMA";
                cedb.gdb_admin_name = "";
                cedb.gdb_admin_password = "";
                cedb.authorization_file = LienseFilePath;
                try
                {
                    this.buttonOK.Enabled = this.buttonCancel.Enabled = false;
                    gp.Execute(cedb as IGPProcess, null);
                    IWorkspace wk = GetWorkspace(server, user, pwd, dbname);
                    MessageBox.Show("创建成功!");
                    this.DialogResult = System.Windows.Forms.DialogResult.OK;
                }
                catch (Exception e2)
                {
                    MessageBox.Show(e2.Message);
                }
            private IWorkspace GetWorkspace(string server, string user, string pwd, string db)
            {
                //直连SQL Server数据库
                IPropertySet propertySet = new PropertySet();
                propertySet.SetProperty("INSTANCE", "sde:sqlserver:" + server);
                propertySet.SetProperty("USER", user);
                propertySet.SetProperty("PASSWORD", pwd);
                propertySet.SetProperty("DATABASE", db);
                IWorkspaceFactory sdewf = new SdeWorkspaceFactory();
                IWorkspace wk = sdewf.Open(propertySet, 0);
                return wk;
            }


     
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值