|
阅读:1567回复:1
ArcGIS Server属性查询为什么返回datatable为null<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> |
|
|
1楼#
发布于:2010-03-18 17:09
<P>后面发现,即使是用=条件查询,也是有些数据查询不到的(dt为null),有些可以,不知是何因?会不会跟数据有关系?</P>
|
|