adong911
路人甲
路人甲
  • 注册日期2006-11-05
  • 发帖数10
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1567回复:1

ArcGIS Server属性查询为什么返回datatable为null

楼主#
更多 发布于:2010-03-18 12:13

<P ><FONT size=3>我在<FONT face="Times New Roman">ArcGIS Server ADF </FONT>开发过程中,发现空间查询没问题,但属性查询总是不正常出现查询结果<FONT face="Times New Roman">Datatable</FONT>为空(如查询所有记录,用<FONT face="Times New Roman"> like </FONT>模糊查询、<FONT face="Times New Roman">< </FONT>、<FONT face="Times New Roman">></FONT>等),不知大家是否碰到,是什么问题,该如何解决?<p></p></FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3><FONT face="Times New Roman"> <p></p></FONT></FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3><FONT face="Times New Roman">//</FONT>获取地图资源的功能对象<p></p></FONT></P>
<P  align=left><FONT size=3>        IGISFunctionality gisfunc = map.GetFunctionality(OperatorMapResource.m_strMapResourceName);<BR>        if (gisfunc == null) return "";<p></p></FONT></P>
<P  align=left><FONT size=3>        //获取功能对象的资源对象并判断是否支持查询功能</FONT><BR><FONT size=3>        IGISResource gisresource = gisfunc.Resource;<BR>        bool bSupportQuery = gisresource.SupportsFunctionality(typeof(IQueryFunctionality));<BR>        if (!bSupportQuery) return "";<p></p></FONT></P>
<P  align=left><FONT size=3>        //获取查询功能对象</FONT><BR><FONT size=3>        IQueryFunctionality queryFunc = gisresource.CreateFunctionality(typeof(IQueryFunctionality), null) as IQueryFunctionality;<p></p></FONT></P>
<P  align=left><FONT size=3>        string[] layerIDs;<BR>        string[] layerNames;<BR>        int layerIndex = -1;<BR>        queryFunc.GetQueryableLayers(null, out layerIDs, out layerNames);<BR>        for (int i = 0; i < layerNames.Length; i++)<BR>        {<BR>            if (layerNames.Equals(layerName))<BR>            {<BR>                layerIndex = i;<BR>                break;<BR>            }<BR>        }<p></p></FONT></P>
<P  align=left><FONT size=3>        if (layerIndex < 0) return "";<p></p></FONT></P>
<P  align=left><FONT size=3>        //构造查询过滤器</FONT><BR><FONT size=3>        ESRI.ArcGIS.ADF.Web.SpatialFilter spatialFilter = new ESRI.ArcGIS.ADF.Web.SpatialFilter();<BR>        spatialFilter.ReturnADFGeometries = false;  //</FONT><FONT size=3>为了</FONT><BR><FONT size=3>        spatialFilter.MaxRecords = 1000;<BR>        spatialFilter.WhereClause = condition;<BR>        spatialFilter.Geometry = map.Extent;<BR>        //spatialFilter.SubFields = new ESRI.ArcGIS.ADF.StringCollection("</FONT><FONT size=3>拆迁状态", ',');<p></p></FONT></P>
<P  align=left><FONT size=3>        //执行查询</FONT><BR><FONT size=3>        System.Data.DataTable dt = queryFunc.Query(null, layerIDs[layerIndex], spatialFilter);<BR>        if (dt == null) return "";<p></p></FONT></P>
<P><FONT size=3></FONT> </P>
喜欢0 评分0
adong911
路人甲
路人甲
  • 注册日期2006-11-05
  • 发帖数10
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2010-03-18 17:09
<P>后面发现,即使是用=条件查询,也是有些数据查询不到的(dt为null),有些可以,不知是何因?会不会跟数据有关系?</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部