ThinkGeo.com    |     Documentation    |     Premium Support

How to convert the datatable result to Featurs IDs

I load a shapefile layer for a user and then he can run different SQL Query over it, now I want to show the query result on the map.


for example: consider user loading the road map of a special city , then he go to query form and run special query over it, like:


SELECT * FROM xxxx WHERE Col1=xx and COL2=yy and ...


now i want to change the color of the roads that was apear on the result of above Query.


 my problem is : How to convert the datatable result to Featurs IDs or something like that to find the features base on it.


Regards,


Ben



Ben,


Thanks for your post and questions.


I think building a ID for your target shape file should fix this problem. After calling the following API, a new column “ID” would mark the Ids to find the features based on.

ShapeFileFeatureLayer.BuildRecordIdColumn(shapeFile, "ID", BuildRecordIdMode.Rebuild);


See following screenshot:



Any more questions just feel free to let me know.


Thanks.


Yale

 



Many Thanx Yale, 
 but if we do not have write permission or we do not want to change the main file, what should we do? 
  
  


Ben, 
  
 Thanks for your feedback. 
  
 As you know, the SQL statement executed is queried only against the Dbf file. So if no ID column exists, it is impossible to get the ID of the queried features.  This is very different with the Spatial Query which is executed against the RTree and Shx file. 
  
 Any more questions just feel free to let me know. 
  
 Thanks. 
  
 Yale 


Many thanks for your answer.

Hi,


I have another problem, I created the ID column using


ShapeFileFeatureLayer.BuildRecordIdColumn(shapeFile, "ID", BuildRecordIdMode.Rebuild);


now if I open the ShapeFile in 

-MapsuitExplorer or 

-use the Layer.QueryTools.ExecuteQuery(SQLQuery); to open it the ID column is empty


but


If I open the DBF file in Excel the column has value!


Regards,


Ben



Ben, 
  
 That is very wired problem. 
  
 You see the screenshot which was shown in Map Suite Explorer, the Id column and values are correct. 
  
 What is the OS environment are you running against? Could you send me the file you think is problematic? 
  
 Any more questions just feel free to let me know. 
  
 Thanks. 
  
 Yale 


Many thanks for your answer,


My OS is windows 7, I mention my Problem ahain:

when I open the dbf file in excel the ID column has value but when I open the file in mapsuitexplorer, or by mapsuitdesktop control, they return nothing for ID column.


 


Many thanks,


Ben


 



2106-R3.zip (177 KB)

Ben,


Thanks for your data. It is very strange problem.
 
I tested the Map Suite Explorer and code to query against the data you provide, both of them works fine. See following screenshots:
 

 
Can you have a try on those data attached in our package? I think the data you provided is correct, seems have something to do with your environment.
 
Any more questions just feel free to let me know.
 
Thanks.
                 
Yale