There are 2 ways to solve this issue
1. Add ValueMember to your ComboBox as it is not specified and your are trying to use the SelectedValue and hence it is returning whole row.
2. Another way is since you are not setting ValueMember instead of SelectedValue use Text property of ComboBox to get its value.
cmd.Parameters.AddWithValue("@MainID", cbProductType.Text);