WPF / C # - проверить строку подключения и выполнить элегантный сбой - PullRequest
1 голос
/ 05 августа 2009

У меня есть приложение WPF, которое использует LINQ to SQL DataContexts.

Какой способ проверки соединения с базой данных является «наилучшей практикой» и информирование пользователя о том, что соединение неисправно или сеть отключена и т. Д., Чтобы приложение не просто бомбардировало.

Прямо сейчас я получаю экран-заставку, а затем "Программа перестала работать", пока "Windows проверяет решение проблемы".

Спасибо!

Ответы [ 3 ]

1 голос
/ 05 августа 2009

Попробуйте запустить приложение в режиме отладки. Он скажет вам, какое исключение выдается вам (неперехваченное исключение даст вам тот неприятный экран, о котором вы говорите :)). Тогда поймай это исключение и живи долго и счастливо ...

0 голосов
/ 26 августа 2009

Попробуйте (не каламбур) выражение try / catch, где вы думаете, что оно может принести пользу. У меня похожая проблема с приложением, которое я делаю, и вот что (для чего оно стоит) я добавил:

    private void txtCustomerNameSearch_TextChanged(object sender, TextChangedEventArgs e)
    {
        fillCustomerListDataContext dbC = new fillCustomerListDataContext();

        var fillCustList = from c in dbC.lstCustomers
                           where c.CustomerName.StartsWith(txtCustomerNameSearch.Text)
                           orderby c.CustomerName
                           select new
                           {
                               c.CustomerName,
                               c.CustomerID
                           };

        try
        {
            lstCustomerNames.ItemsSource = fillCustList;
            lstCustomerNames.DisplayMemberPath = "CustomerName";
            lstCustomerNames.SelectedItem = "CustomerID";
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error = " + ex.Message,"Keeping Amy off balance message");
        }
    }

Надеюсь, это поможет.

0 голосов
/ 05 августа 2009

Проблема в том, что к моим объектам данных обращаются через ObjectDataProviders в XAML, поэтому у меня нет точки останова. Есть ли у ObjectDataProvider какой-то механизм для элегантного сбоя или я проверяю строку подключения при запуске MainForm, ДО вызова InitializeComponent?

...