如何在DataSet.Designer.cs中处理异常?

时间:2009-09-17 08:46:29

标签: c# mysql database visual-studio visual-studio-2008

我正在使用Visual Studio 2008和C#来访问MySql数据库。到目前为止,我依靠Visual Studio为DataSet创建代码,这似乎给了我一个问题。如果数据库不可访问(即未运行),则会显示“MySqlException未处理”,“无法连接到任何指定的MySQL主机”。

我的问题是处理此异常的最佳方法是什么?

我希望能够在不篡改designer.cs文件的情况下处理它,但如果不可能,那么任何解决方法都可以。

    [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;
    }

1 个答案:

答案 0 :(得分:0)

处理异常时,您应该尽早捕获异常,以便在响应异常时有所需要做的事情。 DataSet是一个处理数据库无法访问事件的糟糕地方;如何通知您的应用程序发生此错误?

在您的情况下,您希望如何处理此MySqlException被抛出?在大多数情况下,无法访问的数据库将是一个难以恢复的错误。您可能希望让异常在当前进程中冒泡,只显示错误消息,或者您可能希望重新尝试该过程,或者您可能希望切换到另一个数据库。

听起来你可能想要围绕异常的目的进行一些一般的阅读,以及为什么存在“抛出”机制。他们不仅仅是在那里惹恼你写下try-catch块!