Look at the column names you're returning from your SQL query. The names you're putting in the AS clauses are the ones the columns are going to have in the datatable. Your code should be more like:
c.DataSource = dt;
c.DisplayMember = "Designation";
c.ValueMember = "Designation"
Though, you're not returning a table of Designations to choose from, so what you're doing is kind of pointless.