Ihr zweites String.Format verwendet {2} als Platzhalter, aber Sie übergeben nur ein Argument, also sollten Sie {0} verwenden stattdessen.
Ändern Sie dies:
String.Format("{2}", reader.GetString(0));
Dazu:
String.Format("{0}", reader.GetString(2));