Change this line
SqlCommand comm2 = new SqlCommand("SELECT TC, Name, Surname, BirthDate, Phone from Pers_Info WHERE TC="+Convert.ToInt32(TCNumber)+"");
Your query is returning 0 row. So this is correct behavior.
Add breakpoint at while loop & check flow of execution .
When execution cone to breakpoint right click on dr -> quick watch and paste dr["TC"].ToString().
See the output you will get idea.