Seu segundo
String.Format usa {2} como um espaço reservado, mas você está passando apenas um argumento, então você deve usar {0} em vez de. Mude isso:
String.Format("{2}", reader.GetString(0));
Para isso:
String.Format("{0}", reader.GetString(2));