C# 如何处理DataSet.Designer.cs中的异常?
我正在使用VisualStudio2008和C#访问MySql数据库。到目前为止,我一直依赖VisualStudio为数据集创建代码,这似乎给了我一个问题。如果数据库不可访问(即未运行),则会显示“MySqlException未处理”、“无法连接到任何指定的MySQL主机” 我的问题是,处理此异常的最佳方法是什么 我希望能够在不篡改designer.cs文件的情况下处理它,但是如果这不可能,那么任何解决方法都可以C# 如何处理DataSet.Designer.cs中的异常?,c#,mysql,database,visual-studio,visual-studio-2008,C#,Mysql,Database,Visual Studio,Visual Studio 2008,我正在使用VisualStudio2008和C#访问MySql数据库。到目前为止,我一直依赖VisualStudio为数据集创建代码,这似乎给了我一个问题。如果数据库不可访问(即未运行),则会显示“MySqlException未处理”、“无法连接到任何指定的MySQL主机” 我的问题是,处理此异常的最佳方法是什么 我希望能够在不篡改designer.cs文件的情况下处理它,但是如果这不可能,那么任何解决方法都可以 [global::System.Diagnostics.DebuggerN
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)]
public virtual int Fill(customerDataSet.addressesDataTable dataTable) {
this.Adapter.SelectCommand = this.CommandCollection[0];
if ((this.ClearBeforeFill == true)) {
dataTable.Clear();
}
// Exception occurs on the line below.
int returnValue = this.Adapter.Fill(dataTable);
return returnValue;
}
在处理异常时,您应该在您想要对异常做出响应的最早时刻捕获异常。
数据集
对于处理数据库不可访问事件来说是一个糟糕的地方;如何通知应用程序的其余部分发生此错误
在您的情况下,您希望如何处理抛出的MySqlException
?在大多数情况下,无法访问的数据库将是一个难以恢复的错误。您可能希望在当前进程中出现异常,只显示一条错误消息,或者您可能希望重新尝试该进程,或者您可能希望切换到另一个数据库
在我看来,您可能希望围绕异常的目的以及“抛出”机制存在的原因进行一些一般性的阅读。它们不仅仅是为了烦扰您编写try-catch块 你什么时候得到这个例外?在VisualStudioDesigner中?在你的代码里?如果您的代码中出现异常,请发布相关部分好吗?异常不会发生在文件中。方法是什么?我认为您在这方面做得很好,在使用数据集之前,我将研究如何测试connectionString。稍后将返回结果。我创建了一个单独的方法,尝试打开一个连接,如果连接失败,它将被捕获,并通过消息框告诉我连接失败而没有崩溃。它做了我需要它做的,所以谢谢你的帮助。