It is always better practice to use Field names instead of Index. You can decide which of the following is clear
string sPlayerName = rdr[1].ToString(); sPlayerName = rdr["PlayerFirstName"].ToString();
The best overloaded method match for 'System.Data.Common.DbDataReader.GetString(int)' has some invalid arguments