This code makes no snese.
rptbio.DataSource = dr;
rptbio.DataBind();
dr.Read();
int a = dr.GetInt32(1);
dr.Dispose();
The first two lines read ALL the data in to the control. The next line tries to read data, but it's ALL alrady been read, that's what DataBind does.