Hola;
podrías utilitzar la propiedad DataKeyField del control DataGrid para almacenar el valor del CODIGO en ella, sin tener que crear una columna Código invisible; lo que hace es guardar, por cada ítem, el valor que contiene su CODIGO, siempre y cuando este nombre sea una columna existente en el DataSource que vinculas al DataGrid.