我的程序安装以后登录 本来应该显示的是地图 现在报错啦System.Runtime.InteropServices.ComException (0x80004005):对COM组件的调用返回了错误的HRESULT E_FAIL在ESRI.ArcGIS.Display.ServerStyleGalleryClass.AddFile(String path)在WZGIS.MainGIS.MainGIS.LoadSymbolData() 位置D:\虚拟幢gis功能有待完善\虚拟幢gis功能有待完善\WZGID\WZGIS.MainGIS\MainGIS.cs:行号762在WZGIS.MainGIS.MainGIS.LoadSDEData() 位置D:\虚拟幢gis功能有待完善\虚拟幢gis功能有待完善\WZGIS\WZGIS.MainGIS\MainGIS.cs:行号787在WZGIS.MainGIS.MainGIS.MainGIS_Load(Object sender,EventArgs e)位置D:\虚拟幢gis功能有待完善\虚拟幢gis功能有待完善\WZGIS\WZGIS\WZGIS.mAINgIS\MainGIS.cs:行号 159
762的代码 (761)string sPath = System.Windows.Forms.Application.StartupPath + "\\rs\\emap6.ServerStyle";
(762)pStyleStorage.AddFile(sPath);787的代码 public void LoadSymbolData()
{
// 点符号
OracleCommand cmd = new OracleCommand();
cmd.Connection = CGlobal.m_ConnMap; cmd.CommandText = "Select SYMBOLID,TEXT,SDESC,CODE,XPOS,YPOS,STYPE,CINDEX From T_SYMBOLINDEX";
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
CGlobal.m_Symbols.AddSymbol(
CCommon.DBNullStr(dr[1]), CCommon.DBNullStr(dr[2]), CCommon.DBNullStr(dr[3]),
CCommon.DBNullDec(dr[4]), CCommon.DBNullDec(dr[5]), CCommon.DBNullDec(dr[6]), CCommon.DBNullDec(dr[7]));
}
dr.Close(); // 线符号
//
ServerStyleGalleryClass pStyleGallery = new ServerStyleGalleryClass();
IStyleGalleryStorage pStyleStorage = (IStyleGalleryStorage)pStyleGallery; //string sPath = Application.StartupPath + "\\rs\\dd.ServerStyle";
//string sPath = Application.StartupPath + "\\rs\\ESRI.ServerStyle";
string sPath = System.Windows.Forms.Application.StartupPath + "\\rs\\emap6.ServerStyle";
pStyleStorage.AddFile(sPath); IStyleGalleryItem pStyleItem; IEnumStyleGalleryItem pEnumStyle; try
{
pEnumStyle = pStyleGallery.get_Items("Line Symbols", sPath, "");
pEnumStyle.Reset();
pStyleItem = pEnumStyle.Next(); while (pStyleItem != null)
{
CGlobal.m_Symbols.SetSymbol(pStyleItem.Name, pStyleItem.Item);
pStyleItem = pEnumStyle.Next();
}
}
catch (System.Runtime.InteropServices.COMException comEx)
{
Console.WriteLine(comEx.Message);
}
}
159代码 public void LoadSDEData() //加载已连接的数据库,加载SDE数据
{
LoadSymbolData(); if (m_pFeatws == null) return; OracleCommand cmd = new OracleCommand();
cmd.Connection = CGlobal.m_ConnMap; cmd.CommandText = "Select ID,NAME,VISIBLE,MINSCALE,MAXSCALE,ISANNO," +
"FILLCOLOR,LINECOLOR,LABELSIZE,LABELCOLOR,LABELVISIBLE,CLASSNAME,BIGCLASSNAME," +
"SYMBOLSIZE,SYMBOLCOLOR,SYMBOLSTYLE,FILLSTYLE,LABELFONTNAME,LABELFIELD,ENABLESELECT," +
"TOPICNAME,LINEWIDTH From T_LAYERCTRL where virtualbuildinglayer =1 Order By ID";
OracleDataReader dr = cmd.ExecuteReader();
string sDBName = CGlobal.GetValue("MapDBName");
while (dr.Read())
{
WZGIS.MainGIS.CGlobal.CLayer lay = new WZGIS.MainGIS.CGlobal.CLayer(); lay.dcID = CCommon.DBNullDec(dr["ID"]);
lay.sTableName = CCommon.DBNullStr(dr["NAME"]);
if (sDBName != "")
lay.sTable = sDBName + "." + lay.sTableName;
else
lay.sTable = lay.sTableName; lay.Visible = (CCommon.DBNullDec(dr["VISIBLE"]) != 0);
lay.MinScale = (double)CCommon.DBNullDec(dr["MINSCALE"]);
lay.MaxScale = (double)CCommon.DBNullDec(dr["MAXSCALE"]);
lay.bAnnotation = (CCommon.DBNullDec(dr["ISANNO"]) != 0);
// lay.bRaster = (CCommon.DBNullDec(dr["ISRASTER"]) != 0); if (!dr.IsDBNull(6)) lay.cFill = (int)dr.GetDecimal(6);
if (!dr.IsDBNull(7)) lay.cLine = (int)dr.GetDecimal(7);
if (!dr.IsDBNull(8)) lay.dcLabelSize = (int)dr.GetDecimal(8);
if (!dr.IsDBNull(9)) lay.nLabelColor = (int)dr.GetDecimal(9); if (!dr.IsDBNull(10)) lay.bLabelVisible = (dr.GetDecimal(10) != 0); if (!dr.IsDBNull(11))
lay.sName = dr.GetString(11);
else
lay.sName = lay.sTable; if (!dr.IsDBNull(12))
lay.sBigName = dr.GetString(12);
else
lay.sBigName = lay.sName; if (!dr.IsDBNull(13)) lay.dcSymbolSize = dr.GetDecimal(13);
if (!dr.IsDBNull(14)) lay.nSymbolColor = (int)dr.GetDecimal(14); if (!dr.IsDBNull(15)) lay.nSymbolStyle = (int)dr.GetDecimal(15);
if (!dr.IsDBNull(16)) lay.nFillStyle = (int)dr.GetDecimal(16); if (!dr.IsDBNull(17)) lay.sLabelFontName = dr.GetString(17);
if (!dr.IsDBNull(18)) lay.sLabelField = dr.GetString(18); if (!dr.IsDBNull(19)) lay.bEnableSelect = (dr.GetDecimal(19) != 0); if (!dr.IsDBNull(20)) lay.sTopic = dr.GetString(20); if (!dr.IsDBNull(21)) lay.dcLineWidth = dr.GetDecimal(21); LoadLayerData(ref lay);
CGlobal.m_Layers.AddLayer(ref lay);
//SetInfoMsg("正在加载" + lay.sName);
}
dr.Close();
}
求高手``````SOS ```SOS````
762的代码 (761)string sPath = System.Windows.Forms.Application.StartupPath + "\\rs\\emap6.ServerStyle";
(762)pStyleStorage.AddFile(sPath);787的代码 public void LoadSymbolData()
{
// 点符号
OracleCommand cmd = new OracleCommand();
cmd.Connection = CGlobal.m_ConnMap; cmd.CommandText = "Select SYMBOLID,TEXT,SDESC,CODE,XPOS,YPOS,STYPE,CINDEX From T_SYMBOLINDEX";
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
CGlobal.m_Symbols.AddSymbol(
CCommon.DBNullStr(dr[1]), CCommon.DBNullStr(dr[2]), CCommon.DBNullStr(dr[3]),
CCommon.DBNullDec(dr[4]), CCommon.DBNullDec(dr[5]), CCommon.DBNullDec(dr[6]), CCommon.DBNullDec(dr[7]));
}
dr.Close(); // 线符号
//
ServerStyleGalleryClass pStyleGallery = new ServerStyleGalleryClass();
IStyleGalleryStorage pStyleStorage = (IStyleGalleryStorage)pStyleGallery; //string sPath = Application.StartupPath + "\\rs\\dd.ServerStyle";
//string sPath = Application.StartupPath + "\\rs\\ESRI.ServerStyle";
string sPath = System.Windows.Forms.Application.StartupPath + "\\rs\\emap6.ServerStyle";
pStyleStorage.AddFile(sPath); IStyleGalleryItem pStyleItem; IEnumStyleGalleryItem pEnumStyle; try
{
pEnumStyle = pStyleGallery.get_Items("Line Symbols", sPath, "");
pEnumStyle.Reset();
pStyleItem = pEnumStyle.Next(); while (pStyleItem != null)
{
CGlobal.m_Symbols.SetSymbol(pStyleItem.Name, pStyleItem.Item);
pStyleItem = pEnumStyle.Next();
}
}
catch (System.Runtime.InteropServices.COMException comEx)
{
Console.WriteLine(comEx.Message);
}
}
159代码 public void LoadSDEData() //加载已连接的数据库,加载SDE数据
{
LoadSymbolData(); if (m_pFeatws == null) return; OracleCommand cmd = new OracleCommand();
cmd.Connection = CGlobal.m_ConnMap; cmd.CommandText = "Select ID,NAME,VISIBLE,MINSCALE,MAXSCALE,ISANNO," +
"FILLCOLOR,LINECOLOR,LABELSIZE,LABELCOLOR,LABELVISIBLE,CLASSNAME,BIGCLASSNAME," +
"SYMBOLSIZE,SYMBOLCOLOR,SYMBOLSTYLE,FILLSTYLE,LABELFONTNAME,LABELFIELD,ENABLESELECT," +
"TOPICNAME,LINEWIDTH From T_LAYERCTRL where virtualbuildinglayer =1 Order By ID";
OracleDataReader dr = cmd.ExecuteReader();
string sDBName = CGlobal.GetValue("MapDBName");
while (dr.Read())
{
WZGIS.MainGIS.CGlobal.CLayer lay = new WZGIS.MainGIS.CGlobal.CLayer(); lay.dcID = CCommon.DBNullDec(dr["ID"]);
lay.sTableName = CCommon.DBNullStr(dr["NAME"]);
if (sDBName != "")
lay.sTable = sDBName + "." + lay.sTableName;
else
lay.sTable = lay.sTableName; lay.Visible = (CCommon.DBNullDec(dr["VISIBLE"]) != 0);
lay.MinScale = (double)CCommon.DBNullDec(dr["MINSCALE"]);
lay.MaxScale = (double)CCommon.DBNullDec(dr["MAXSCALE"]);
lay.bAnnotation = (CCommon.DBNullDec(dr["ISANNO"]) != 0);
// lay.bRaster = (CCommon.DBNullDec(dr["ISRASTER"]) != 0); if (!dr.IsDBNull(6)) lay.cFill = (int)dr.GetDecimal(6);
if (!dr.IsDBNull(7)) lay.cLine = (int)dr.GetDecimal(7);
if (!dr.IsDBNull(8)) lay.dcLabelSize = (int)dr.GetDecimal(8);
if (!dr.IsDBNull(9)) lay.nLabelColor = (int)dr.GetDecimal(9); if (!dr.IsDBNull(10)) lay.bLabelVisible = (dr.GetDecimal(10) != 0); if (!dr.IsDBNull(11))
lay.sName = dr.GetString(11);
else
lay.sName = lay.sTable; if (!dr.IsDBNull(12))
lay.sBigName = dr.GetString(12);
else
lay.sBigName = lay.sName; if (!dr.IsDBNull(13)) lay.dcSymbolSize = dr.GetDecimal(13);
if (!dr.IsDBNull(14)) lay.nSymbolColor = (int)dr.GetDecimal(14); if (!dr.IsDBNull(15)) lay.nSymbolStyle = (int)dr.GetDecimal(15);
if (!dr.IsDBNull(16)) lay.nFillStyle = (int)dr.GetDecimal(16); if (!dr.IsDBNull(17)) lay.sLabelFontName = dr.GetString(17);
if (!dr.IsDBNull(18)) lay.sLabelField = dr.GetString(18); if (!dr.IsDBNull(19)) lay.bEnableSelect = (dr.GetDecimal(19) != 0); if (!dr.IsDBNull(20)) lay.sTopic = dr.GetString(20); if (!dr.IsDBNull(21)) lay.dcLineWidth = dr.GetDecimal(21); LoadLayerData(ref lay);
CGlobal.m_Layers.AddLayer(ref lay);
//SetInfoMsg("正在加载" + lay.sName);
}
dr.Close();
}
求高手``````SOS ```SOS````
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货