ThinkGeo.com    |     Documentation    |     Premium Support

ExecuteQuery problem

I'm performing this query : 


DataTable sourceTable = (DataTable)MediumSubTypeLayer.QueryTools.ExecuteQuery("SELECT EdID FROM 71492a0b-b0c3-4407-8dc0-fdfd83eddee9 WHERE EdID='4b03b69a-a0ec-4d33-8da3-318a9700cccb'"); 


And the returning table has 0 rows. 


 


When I changhe the query to WHERE EdID<>'4b03b69a-a0ec-4d33-8da3-318a9700cccb' the returning table contains one record with the value '4b03b69a-a0ec-4d33-8da3-318a9700cccb'. 


The columntype of EdID is string. 


I tried other queries on different field and they all return weird results. In attachment is the layer. 


Thanks for any support! 



760-71492a0b-b0c3-4407-8dc0-fdfd83eddee9.zip (44.3 KB)

Elm,



I failed to recreate your issue, please see the screenshot of my bug result.



Could you please provide us more information such as version, language, or a simple sample which can easily recreate your issue.



Here is my testing code, and it returns one line of data.Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4"));
Map1.MapUnit = GeographyUnit.DecimalDegree;

ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(MapPath("data/71492a0b-b0c3-4407-8dc0-fdfd83eddee9.shp"));
worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 243, 239, 228), GeoColor.FromArgb(255, 218, 193, 163), 1);
worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

worldLayer.Open();
string sql = "SELECT EdID FROM 71492a0b-b0c3-4407-8dc0-fdfd83eddee9 WHERE EdID='4b03b69a-a0ec-4d33-8da3-318a9700cccb'";
DataTable sourceTable = worldLayer.QueryTools.ExecuteQuery(sql);
int count = sourceTable.Rows.Count;
Map1.StaticOverlay.Layers.Add(worldLayer);
Map1.CurrentExtent = worldLayer.GetBoundingBox();
worldLayer.Close();

If you have any questions please let me know.



Thanks,

Howard



Thanks for investigating this issue.


My dll's have version 3.0.0.0


I've added a screenshot of the debugging sessions where you can clearly see that no records are returned when performing the query.



This is the same code as in the screenshot :


 string sql = "SELECT EdID FROM 71492a0b-b0c3-4407-8dc0-fdfd83eddee9 WHERE EdID='4b03b69a-a0ec-4d33-8da3-318a9700cccb'";


ShapeFileFeatureLayer l = new ShapeFileFeatureLayer(EditionShapePath + MediumSubTypeID.ToString() + ".shp");


l.Open();


DataTable dtQuery = l.QueryTools.ExecuteQuery(sql);


sql = "SELECT EdID FROM 71492a0b-b0c3-4407-8dc0-fdfd83eddee9 WHERE EdID<>'4b03b69a-a0ec-4d33-8da3-318a9700cccb'";


DataTable dtNotQuery = l.QueryTools.ExecuteQuery(sql);


 


l.Close();


 


If you need any additional information please do ask.


 


Regards! 


 


 



Elm, 
  
 I recreated your issue with our 3.1.16 (Assembly Version), and this issue is fixed in our latest version 3.1.124. 
  
 Please update the DLL to the latest version, and see if the issue still exists. 
  
 Any questions please let me know. 
  
 Thanks, 
 Howard

It seems to be version 3.1.16.0. See the screenshot. But my Visual studio seems to display 3.0.0.0



Any ideas?


 


 


Thanks!



Elm, 
  
 3.1.16 actually is file version. Sorry for my mistake in my last reply. While the version in the VS is assembly version. 
  
 It seems you are using 3.1.16. The issue you found is a bug in 3.1.16 and it’s fixed in 3.1.124, please update the DLL and your issue will be gone. 
  
 Any questions please let me know. 
  
 Thanks, 
 Howard

This solved the problem! Didn't notice there was a new release :/


 


Thanks!


 



Elm, 
  
 Good to hear you have this issue fixed. Please let me know if you have more questions. 
  
 Thanks, 
 Howard