WPF/C#-测试连接字符串并优雅地失败

WPF/C#-测试连接字符串并优雅地失败,c#,wpf,connection-string,C#,Wpf,Connection String,我有一个WPF应用程序,它使用LINQ到SQL数据上下文 测试数据库连接的“最佳实践”方法是什么,让用户知道连接不好或网络断开等,这样应用程序就不会爆炸 现在,我看到了启动屏幕,然后在“Windows正在检查问题的解决方案”时出现了“程序已停止工作” 谢谢 尝试在调试模式下运行应用程序。它会告诉你哪个异常会被抛出(未修补的异常会给你带来你所说的讨厌的垃圾邮件屏幕:)。然后捕获该异常,并在..尝试在调试模式下运行应用程序后永远快乐地生活。它会告诉你哪个异常会被抛出(未修补的异常会给你带来你所说的讨

我有一个WPF应用程序,它使用LINQ到SQL数据上下文

测试数据库连接的“最佳实践”方法是什么,让用户知道连接不好或网络断开等,这样应用程序就不会爆炸

现在,我看到了启动屏幕,然后在“Windows正在检查问题的解决方案”时出现了“程序已停止工作”


谢谢

尝试在调试模式下运行应用程序。它会告诉你哪个异常会被抛出(未修补的异常会给你带来你所说的讨厌的垃圾邮件屏幕:)。然后捕获该异常,并在..

尝试在调试模式下运行应用程序后永远快乐地生活。它会告诉你哪个异常会被抛出(未修补的异常会给你带来你所说的讨厌的垃圾邮件屏幕:)。然后捕获该异常,并从此幸福地生活下去。

问题是我的数据上下文是通过XAML中的ObjectDataProviders访问的,因此我没有断点。ObjectDataProvider是否有某种机制可以优雅地失败,或者在InitializeComponent调用之前,我是否在MainForm启动中测试Connectionstring?

问题是,我的数据上下文是通过XAML中的ObjectDataProviders访问的,因此我没有获得断点。ObjectDataProvider是否有某种机制可以优雅地失败,或者在InitializeComponent调用之前,我是否在MainForm启动中测试Connectionstring?

尝试(不使用双关语)一个您认为可能有好处的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");
        }
    }
希望这能有所帮助。

尝试(不是双关语)一个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");
        }
    }

希望这能有所帮助。

不过,在调试模式下,您应该获得有关任何未修补异常的详细异常信息(除非您在VS中已将其关闭)。不过,在调试模式下,您应该获得有关任何未修补异常的详细异常信息(除非您在VS中已将其关闭)