WPF/C#-测试连接字符串并优雅地失败
我有一个WPF应用程序,它使用LINQ到SQL数据上下文 测试数据库连接的“最佳实践”方法是什么,让用户知道连接不好或网络断开等,这样应用程序就不会爆炸 现在,我看到了启动屏幕,然后在“Windows正在检查问题的解决方案”时出现了“程序已停止工作”WPF/C#-测试连接字符串并优雅地失败,c#,wpf,connection-string,C#,Wpf,Connection String,我有一个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中已将其关闭)