Технология Microsoft ADO.NET


Обработка исключений - часть 4


@"Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=""D:\Uchebnik\Code\Glava2\BDwithUsersP.mdb""; Jet OLEDB:System database=""D:\Uchebnik\Code\Glava \BDWorkFile.mdw"";";

OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT * FROM Туристы", conn); DataSet ds = new DataSet(); conn.Open(); dataAdapter.Fill(ds); dataGrid1.DataSource = ds.Tables[0].DefaultView; } catch (OleDbException oshibka) { //Пробегаем по всем ошибкам for (int i=0; i < oshibka.Errors.Count; i++) { label1.Text+= "Номер ошибки " + i + "\n" + "Сообщение: " + oshibka.Errors[i].Message + "\n" + "Номер ошибки NativeError: " + oshibka.Errors[i].NativeError + "\n" + "Источник: " + oshibka.Errors[i].Source + "\n" + "Номер SQLState: " + oshibka.Errors[i].SQLState + "\n"; } } //Отлавливаем прочие возможные ошибки: catch (Exception ex) { label1.Text += "\nОшибка подключения: " + ex.Message; } finally { conn.Dispose(); } }

Запускаем приложение (рис. 4.12). Свойство Message возвращает причину ошибки на русском языке, поскольку установлена русская версия Microsoft Office 2003. Свойство NativeError (внутренняя ошибка) возвращает номер исключения, генерируемый самим источником данных. Вместе или по отдельности со свойством SQL State их можно использовать для создания переключателя, предоставляющего пользователю расширенную информацию (мы это делали в приложении ExceptionsSQL) .

 Готовое приложение ExceptionsMDB

Рис. 4.12.  Готовое приложение ExceptionsMDB

Кроме обработки исключений, здесь следует обратить внимание на интерфейс, предоставляющий возможность пользователю вводить сведения своей учетной записи. Теперь в целях безопасности приложения не нужно включать пароль в код при использовании мастеров, поскольку строка соединения будет генерироваться динамически. Разумеется, ваше приложение может иметь другой интерфейс - например, окно соединения будет появляться в дочерней форме.

В программном обеспечении к курсу вы найдете приложение Exceptions MDB (Code\Glava2\ ExceptionsMDB).




Начало  Назад  Вперед



Книжный магазин