ThinkGeo.com    |     Documentation    |     Premium Support

Get Feature or FeatureId from DataRow

Is there a way to either get a ThinkGeo.MapSuite.Core.Feature or its Id from a System.Data.DataRow that was returned via an ExecuteQuery?


The dbf does not have a FeatureId column.


Below is a code snippet that shows the ExecuteQuery.


Thanks,


Dennis


ShapeFileFeatureLayer TheStreetsFeatures;


TheStreetsFeatures.Open();


System.Data.DataTable dtFeatures = TheStreetsFeatures.FeatureSource.ExecuteQuery("SELECT * FROM layer.dbf ORDER BY MyColumn");


foreach (System.Data.DataRow TheFeatureRow in dtFeature.Rows)


{


at this point how to get the Feature or its Id?


}


 



Dennis, 
  
 ExecuteQuery only return the information in Dbf that there is no relationship with feature, but if you have a column which has unique record that you can use it to get feature id, For example, this column name is “recordId”, first you can get all features by using FeatureSource.GetAllFeatures(new string[]{“recordId”}), and then for each features and compare which feature’s recorded equals the one from data table. 
  
 Thanks, 
 James