Я не касался WinForms и .NET уже много лет, поэтому я не могу дать вам никаких технических подробностей, но есть ответ более широкой картины:
Прежде всего - не привязывайте данные формы непосредственно к базе данных.
Создайте отдельный слой данных / модели, к которому вы привязываете свои виджеты форм.
С этого момента у вас есть несколько доступных вам опций в зависимости от уровня стабильности и доступности, которые вам нужно предоставить.
Вероятно, одним из самых простых решений здесь было бы просто включить / отключить части приложения, которые должны взаимодействовать с базой данных на основе состояния соединения.
Следующий уровень защиты будет включать локальное кэширование части модели данных и, когда соединение с базой данных отключено, использование локального кэша для просмотра и отключения любых функций, требующих явного соединения с базой данных.
Вероятно, самая хитрая вещь (которая также может предоставить конечному пользователю самый стабильный опыт) - это локальная репликация базы данных и использование какой-либо схемы синхронизации для синхронизации вашей копии базы данных с удаленной базой данных.