The chances are that it's to do with the content of the drop down list: when you put quotes around it as in your second example, it works because SQL knows to expect it as a string.
However, it would be a much, much better idea to use a Parametrized query instead:
cmd.CommandText = "SELECT fname,mbn,kskill,resume,email FROM reg WHERE cl=@CL";
cm.Parameters.AddWithValue("@CL", ddlocation.SelectedItem);
This would also help to protect you from accidental or deliberate SQL Injection attacks.