SDE连接成功,得到workspace,编译后在GUI上却是白板一个,图层却无法显示,但是提示有坐标的,调试不出来,大家帮我看看是什么原因。
原代码如下:
- C# code
private void Form1_Load(object sender, EventArgs e) { OpenSDEWorkspace("xt-fumeizhi-01", "5151/tcp", "xt", "sa", "123", "sde.DEFAULT"); #region //绑定要素到控件 m_mapControl = (IMapControl3)this.axMapControl1.Object; m_pageLayoutControl = (IPageLayoutControl2)this.axPageLayoutControl1.Object; //初始化controls synchronization calss m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl); //把MapControl和PageLayoutControl绑定起来(两个都指向同一个Map),然后设置MapControl为活动的Control m_controlsSynchronizer.BindControls(true); //为了在切换MapControl和PageLayoutControl视图同步,要添加Framework Control m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object); m_controlsSynchronizer.AddFrameworkControl(this.axTOCControl1.Object); // 添加打开命令按钮到工具条 OpenNewMapDocument openMapDoc = new OpenNewMapDocument(m_controlsSynchronizer); axToolbarControl1.AddItem(openMapDoc, -1, 0, false, -1, esriCommandStyles.esriCommandStyleIconOnly);#endregion } public IWorkspace OpenSDEWorkspace(string Server, string Instance, string Database, string User, string Password, string version) { IPropertySet pPropSet = new PropertySetClass(); IFeatureDataset pFeatureDataset; //设置SDE连接属性信息 IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass(); pPropSet.SetProperty("SERVER", Server); pPropSet.SetProperty("INSTANCE", Instance); pPropSet.SetProperty("DATABASE", Database); pPropSet.SetProperty("USER", User); pPropSet.SetProperty("PASSWORD", Password); pPropSet.SetProperty("VERSION", version); try { //打开一个工作空间 pWorkspace = pSdeFact.Open(pPropSet, 0); if (pWorkspace is IFeatureWorkspace) { pFeatureWorkspace = pWorkspace as IFeatureWorkspace; } //pFeatureWorkspace = pSdeFact.Open(pPropSet, 0) as IFeatureWorkspace; //pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset("cities.sdc"); pFeatureClass = pFeatureWorkspace.OpenFeatureClass("BOU1_4M_L"); pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; pFeatureLayer.Name = pFeatureClass.AliasName; //this.RenderLayer(pFeatureLayer); //pMap = axMapControl1.Map; axMapControl1.AddLayer(pFeatureLayer); //pMap.AddLayer(pFeatureLayer); axMapControl1.Refresh(); } catch (Exception ex) { MessageBox.Show("SDE Cann't Connection"); } return pWorkspace; }
------解决方案--------------------
map不会,看看
------解决方案--------------------
呵呵。出这样的问题够烦的。