Normally, when you cause an SQL exception is is pretty explicit: it either gives you a name:
System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'description'
or at a minimum a column reference number.
Look at the exception: if you use Exception.Message you will get a bare-bones version. If you look at Exception.ToString() you will get a more detailed (and mostly stack trace) explanation. Put a breakpoint on the first line of the catch block - you may be able to work it out from there.