Collection dbfColumns = new Collection(); DbfColumn column1 = new DbfColumn("id", DbfColumnType.String, 20, 0); DbfColumn column2 = new DbfColumn("name", DbfColumnType.String, 20, 0); dbfColumns.Add(column1); dbfColumns.Add(column2); /////////////// createshapefile and add a polygon into .shp file and two fields into .dbf file ShapeFileFeatureLayer.CreateShapeFile(ShapeFileType.Polygon, "../A.SHP", dbfColumns); ShapeFileFeatureLayer shpLayer = new ShapeFileFeatureLayer("../A.SHP", ShapeFileReadWriteMode.ReadWrite); PolygonShape polygonToAdd = new PolygonShape("POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))"); Dictionary dbfValues = new Dictionary(); dbfValues.Add("id", "1"); dbfValues.Add("name", "polygon1"); shpLayer.FeatureSource.Open(); shpLayer.FeatureSource.BeginTransaction(); shpLayer.FeatureSource.AddFeature(polygonToAdd, dbfValues); shpLayer.FeatureSource.CommitTransaction(); shpLayer.Close(); /////////////add a column to a dbf file ShapeFileFeatureSource shpFeatureSource = new ShapeFileFeatureSource("../A.SHP", ShapeFileReadWriteMode.ReadWrite); shpFeatureSource.Open(); shpFeatureSource.AddColumnString("newcolumn", 20); shpFeatureSource.RefreshColumns(); Collection features = shpFeatureSource.GetAllFeatures(ReturningColumnsType.AllColumns); shpFeatureSource.Close(); Feature featureToChange = features[0]; ////// change a field value GeoDbf dbfEdit = new GeoDbf("../A.dbf", DbfReadWriteMode.ReadWrite); dbfEdit.Open(); dbfEdit.UpdateColumnName(2, "newName"); dbfEdit.WriteField(Convert.ToInt32(featureToChange.Id), "newName", "newPolygon"); dbfEdit.Close();