l.Text = dt.Rows[ctr]["Serial"] + ",";
"INDEXOUTOFRANGE EXCEPTION WAS UNHANDLE BY THE USER CODE
THERE IS NO ROW POSITION 0(ZERE)"
The clue is in the error: There is no row in your table. You do not show where you load the table with anything other than a new table - so there are no rows. You will have to read some data into it at some point if you want to show any data from it...