Please refer this link you will understand the AutoGenerateColumn property.
When you set AutoGenerateColumn="true" :
AutoGeneratedField object is automatically created for each field in the data source. Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source.
When you creating column dynamically(as you created) you have to set AutoGenerateColumn="false".