For your purpose, you should be using
DataKeyNames[
^]
Briefly, set the DataKeyNames property of the gridview to the id field. During databinding, the GridView will look for a field named id and used it the primary key for each row in the GridView. This way, you do not have to display the id yet still being able to retrieve it.