2009-09-17 4 views
0

Я использую Visual Studio 2008 вместе с C# для доступа к базе данных MySql. К этому моменту я полагался на Visual Studio, чтобы создать код для DataSet, и это, похоже, дало мне проблему. Если база данных недоступна (т. Е. Не работает), она дает сообщение «MySqlException было необработанным», «невозможно подключиться к любому из указанных узлов MySQL».Как я могу обработать исключение в DataSet.Designer.cs?

Мой вопрос - это лучший способ справиться с этим исключением?

Я хотел бы иметь возможность обрабатывать его без вмешательства файла 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; 
    } 
+0

Когда у вас есть это исключение? в дизайнере визуальной студии? в вашем коде? Если вы получите исключение в своем коде, не могли бы вы разместить соответствующую его часть? –

+0

Исключения не происходят в файле. Что такое метод? –

ответ

0

При обработке исключений, вы должны поймать исключение в самое ближайшее время, у вас есть то, что вы хотите сделать в ответ на исключение. A DataSet - это плохое место для обработки события, когда ваша база данных недоступна; как будет отправлена ​​остальная часть вашего приложения, чтобы эта ошибка произошла?

В вашем случае, как вы хотите справиться с этим MySqlException быть выброшенным? В большинстве случаев труднодоступная база данных будет сложной ошибкой для восстановления. Возможно, вы захотите, чтобы исключение появилось в вашем текущем процессе и просто отобразило сообщение об ошибке, или вы можете захотеть повторить попытку процесса, или вы можете переключиться на другую базу данных.

Мне кажется, что вы можете сделать общее чтение вокруг цели исключений и почему существует механизм «броска». Они не просто там, чтобы раздражать вас написанием блоков try-catch!

+0

Я думаю, что вы там хорошо поработали, я буду изучать тестирование connectionString перед использованием DataSet. Вернемся немного позже с результатами. – Severus

+0

Я создал отдельный метод, который пытается открыть соединение, и если он терпит неудачу, он пойман и позволяет мне узнать через окно сообщения, что соединение завершилось без сбоев. Он делает то, что мне нужно, чтобы сделать это, спасибо за вашу помощь. – Severus

Смежные вопросы