The error is pretty explicit:
"Multiple controls with the same ID 'lebelId1' were found. FindControl requires that controls have unique IDs."
So instead of naming all the controls you add the same:
Label labelID = new Label();
labelID.ID = "lebelId" + i.ToString();
Create a class level integer, set it to one before you start reading from your DB:
labelNumber = 1;
while (rdr.Read())
{
DynamicControlMethod(rdr);
}
And use that in your label construction code:
Label labelID = new Label();
labelID.ID = "lebelId" + labelNumber++.ToString();