Your code is assuming this line:
ds = ObjAdd.DisplayPrayerTime();
is returning a bunch of rows. It does not check to see if any tables or rows have been returned by DisplayPrayerTime.
Why is it not returning rows? Nobody can tell you because you didn't show that the code for DisplayPrayerTime, nor any queries it's executing against a database, assuming there is one.