Исключения DAL должны обрабатываться и перебрасываться (как пользовательские исключения) вашим BAL. Который вы должны сериализовать и отправить на ваш интерфейс через используемый вами канал связи.
Вам не нужно показывать точную ошибку пользователю или ее номер, потому что это приведет к плохому пользовательскому опыту. Вы можете просто сказать им, что не можете выполнить операцию в БД. Вы можете записать детали в некоторый файл журнала или журнал событий Windows.
РЕДАКТИРОВАТЬ: SqlException имеет код ошибки, который вы можете проверить в DAL, а затем выдать конкретное исключение на основе этого. Ваш DAL абстрагирует SQL Server как внутреннее хранилище, и поэтому исключения SqlException не должны выходить за пределы вашего DAL. Поэтому в DAL проверьте ErrorCode и сгенерируйте конкретное исключение.