Из сообщения об ошибке я бы сказал, что ваш запрос не возвращает никаких строк.
Попробуйте поставить точку останова сразу после присвоения query
и скопируйте строку в окно запроса в SQL Server Management Studio, чтобы увидеть, возвращаются ли какие-либо строки данных.
Вероятно, он не возвращает никаких строк. Отлаживайте свой запрос, пока не узнаете, что у вас есть запрос, возвращающий данные.
Кроме того, помимо помещения содержимого этой функции в блок try / catch, я бы обернул все строки, использующие ds.Tables["Trailer"].Rows[0]
, в блок if, что-то вроде if(ds.Tables["Trailer"].Rows.Count > 0){