ThinkGeo.com    |     Documentation    |     Premium Support

How to delete a column from the ShapeFileFeatureSource?

 Hi.


I want to be able to delete/remove column from the dbf file as I was able to do that using Desktop Edition 2.0.


I'm able to add new column but do not see any method to accomplish that:


 


 



ShapeFileFeatureLayer shapeLayer = new ShapeFileFeatureLayer (@"");
ShapeFileFeatureSource featureSource = (ShapeFileFeatureSource)shapeLayer.FeatureSource;

shapeLayer.Open();
featureSource.BeginTransaction();

//add new column
featureSource.AddColumnDouble("Area", 10, 4);

//how delete existing column???
//featureSource......

featureSource.CommitTransaction();
shapeLayer.Close();


Hello Sergei, 
  
 Thank you for your post, but sorry to say, we don’t have the method to insert/modify/delete a column. We used to have this function in Map Suite 2.0 but as dbf structure itself is not suitable for adding/removing columns, to implement that, internally we need to create a new dbf file, copy all the data there and replace the original file. This method is easily to be abused and it has a low performance. For example, if I want to add 2 new columns and call AddColumn() method twice, internally it will do the copies twice. That’s a reason we removed this method in 3.0 kind of reminding people DBF is not suitable to do this operation, if you implement it by yourself, you can have a better performance and have a good understand about the logic behind the scene.  
  
 Sorry for the inconvenience, 
  
 Regards, 
  
 Gary