'

Лекция 8

Понравилась презентация – покажи это...





Слайд 0

Лекция 8 Кафедра Прикладной математики М-703, тел. 362-79-62 К.т.н., профессор Глаголев Виктор Борисович, комн. Ж-405б, тел. 362-73-28 http://glagvik.narod2.ru/index.htm Базы данных Коллекции Терминология БД Связь между таблицами База данных «Библиотека» Объект DataGridView Отладка Виды ошибок Режимы среды Точка останова Пошаговое выполнение программы


Слайд 1

Коллекции Коллекция – это группа объектов, каждый из которых может быть любого типа. Коллекция позволяет производить некоторые действия со всеми входящими в коллекцию объектами. Коллекция в свою очередь является объектом, она обладает свойствами и методами. Так свойство Count содержит число объектов коллекции.


Слайд 2

Некоторые методы коллекций:


Слайд 3

Коллекция должна быть объявлена программистом с применением синтаксиса: Public/Private/Dim ИмяКоллекции As _ New Collection


Слайд 4

Для обработки всех элементов коллекции в VB имеется специальная инструкция цикла For Each … In … Next (для каждого … в …). Синтаксис этой инструкции: For Each Экземпляр In ИмяКоллекции [Инструкции] [Exit For] [Инструкции] Next


Слайд 5

Эта инструкция цикла обеспечивает выполнение группы инструкций для каждого экземпляра коллекции. Эта инструкция цикла может быть применена также для массива. Экземпляр – это имя переменной типа Object. Допускается досрочный выход из цикла с помощью инструкции Exit For.


Слайд 6

Рассмотрим пример. Объявлены коллекция и три переменные, которые включены в коллекцию. Затем все содержимое коллекции выведено в текстовом поле. Private Sub Button1_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim List As New Collection Dim i As Integer Dim s As Single Dim st As String Dim v As Object


Слайд 7

i = 3 s = 1.5 st = "Test" List.Add(st) List.Add(s) List.Add(i) For Each v In List TextBox1.AppendText(v.ToString & vbCrLf) Next End Sub


Слайд 8

Результат работы подпрограммы Button1_Click


Слайд 9

В VB определены две встроенные коллекции объектов, к которым можно обращаться без их объявления: Forms. В эту коллекцию включены все загруженные формы проекта. Controls. Коллекция включает все управляющие элементы всех форм.


Слайд 10

Терминология баз данных База данных предназначена для хранения и извлечения сложной структурированной информации. Базы данных поддерживаются специальными программами, которые называются системами управления базами данных (СУБД). Различают базы данных иерархические, сетевые и реляционные. Наиболее распространены реляционные базы данных.


Слайд 11

В реляционных базах данные хранятся в связанных таблицах, в каждой из которых хранится информация, относящаяся к одной сущности. Так, в базе данных, предназначенной для хранения информации о книгах библиотеки, будет: одна таблица Книги с перечнем изданий; еще одна таблица Авторы с информацией об авторах; еще одна таблица Издательства с информацией об издательствах.


Слайд 12

В первой таблице для каждой книги может храниться ее название, количество страниц, аннотация. Во второй будут храниться данные об авторах изданий: фамилия, имя, отчество. Если информация об авторе книги будет храниться в одной таблице вместе с ее названием, то данные об авторах будут повторяться. Ведь один и тот же автор может быть автором нескольких книг. Это бы привело к дублированию информации, что неизбежно приводит к несогласованности данных.


Слайд 13

Строка таблицы базы данных называется записью. Отдельная часть записи, принадлежащая к конкретной колонке таблицы, называется полем.


Слайд 14

Связь между таблицами Каждая таблица должна иметь столбец, значения данных в котором не повторяются. В базе данных такие сведения носят название первичного ключа таблицы. Первичный ключ применяется для связи с другими таблицами. Он не может не иметь значения. Это значение должно быть уникальным в пределах столбца таблицы, его нельзя изменять. В качестве первичного ключа удобно применять счетчик.


Слайд 15

Вернемся к рассмотренному примеру о книгах. Таблица книг связана с таблицей авторов. Но один и тот же автор может быть автором нескольких книг. Такая связь между таблицей книг и таблицей авторов представляет собой отношение «один-ко-многим». Для реализации такой связи между таблицей книг и таблицей авторов в таблице книг следует поместить поле вторичного ключа, в котором для каждой книги указывается значение первичного ключа соответствующего автора в таблице авторов.


Слайд 16

Учтем, что у книги может быть не один, а несколько авторов. С другой стороны, отдельный автор может быть автором нескольких книг. Следовательно, для каждой записи таблицы книг может существовать несколько записей в таблице авторов. И, наоборот, для каждой записи в таблице авторов может существовать несколько записей в таблице книг. Такой тип связи между таблицами называется отношением «многие-ко-многим».


Слайд 17

Это проблема. Попытку сохранить данные о книге в одной записи, добавив поля для каждого отдельного автора книги, нельзя признать удачной. Сколько бы не было предусмотрено возможностей включить для книги новое поле для дополнительного автора, этих полей может оказаться недостаточно. И в то же время, когда авторов книги немного, лишние поля останутся пустыми, что приведет к нерациональному использованию памяти.


Слайд 18

Решением этой проблемы является создание третьей, связующей, таблицы, имеющей всего два поля. С помощью связующей таблицы отношение «многие-ко-многим» разбивается на два отношения «один-ко-многим». В первое поле связующей таблицы записывается первичный ключ книги. Во второе поле записывается первичный ключ автора.


Слайд 19

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


Слайд 20

Тип связи «многие-ко-многим»


Слайд 21

Модель ADO.NET VB.NET позволяет отображать, анализировать и изменять информацию в существующих базах данных и для этой цели предлагает модель доступа к данным, которая называется ADO.NET.


Слайд 22

Эта модель позволяет работать с мощными базами данных, созданными одной из СУБД, например: Microsoft Access, Microsoft FoxPro, Paradox, Oracle и Microsoft SQL Server. Далее работа с базой данных будет рассмотрена на примере базы данных Access. Работа с базами данных другого типа проходит аналогично.


Слайд 23

В ADO.NET для получения и изменения информации в базе данных необходимо: Установить соединение (Connection) с базой данных. Создать адаптер данных (Data adapter). Управляет получением данных из базы данных и обратной отправкой изменений в данных. Создать набор данных (Dataset). Представляет копию данных одной или нескольких таблиц, с которыми Вы планируете работать.


Слайд 24

База данных «Библиотека» В качестве примера рассмотрим учебную базу данных, содержащую информацию о книгах библиотеки, созданную с помощью СУБД Access. Работа с базами данных другого типа проходит аналогично. Вся информация в этой базе данных содержится в четырех таблицах: Книги, Авторы, Издательства и связующей таблице КнгАвт.


Слайд 25

Таблица Книги


Слайд 26

Таблица Авторы


Слайд 27

Таблица Издательства


Слайд 28

Связующая таблица КнгАвт


Слайд 29

Связь таблиц


Слайд 30

Проект библиотека Сначала был создан новый проект с именем Библиотека2 по шаблону Windows Forms Application. Чтобы каждая из четырех таблиц базы данных могла размещаться на отдельной форме следует добавить к проекту еще три формы Form2, Form3 и Form4. Чтобы видеть название таблицы, которая будет отображаться на соответствующей форме, следует имя таблицы задать свойству Text формы: Form1.Text – Книги, Form2.Text – Авторы, Form3.Text – Издательства и Form4.Text – КнгАвт.


Слайд 31

Экземпляр формы Form1 создается системой автоматически. Для создания экземпляра каждой из остальных трех форм следует добавить в проект модуль Module1: Module Module1 Public frm2 As New Form2 Public frm3 As New Form3 Public frm4 As New Form4 End Module


Слайд 32

Сначала следует выполнить команду View, Server Explorer (обозреватель серверов). Затем на панели инструментов появившегося окна Server Explorer нужно щелкнуть на кнопке Connect to Database (подключиться к базе данных). Connect to Database (подключиться к базе данных) Установка соединения с базой данных


Слайд 33

Откроется окно Add Connection:


Слайд 34

Теперь в открывшемся окне Add Connection (добавить соединение) нужно выбрать тип базы данных, с которой будет установлена связь. В поле Data Source (источник данных) этого окна должно быть установлено значение Microsoft Access Database File (OLE DB). Если это не так, то нужно щелкнуть справа от этого поля на кнопке Change (изменить) и в открывшемся диалоговом окне Change Date Source (предпочитаемый источник данных) установить требуемый тип базы данных Microsoft Access Database File. Закройте окно Change Date Source щелком на кнопке OK.


Слайд 35

В диалоговом окне Add Connection следует щелкнуть на кнопке Browse и указать путь к файлу базы данных Библиотека2. Ничего больше не изменяя в окне Add Connection, нужно щелкнуть на кнопке Test Connection (проверить подключение). Visual Studio попытается установить соединение с базой данных. Если появится сообщение Test Connection Succeeded (проверка подключения выполнена), это будет означать, что провайдер выбран правильно и база данных имеет правильный формат. Окно с сообщением следует закрыть нажатием на кнопку ОК, а также нажатием на кнопку ОК следует закрыть окно Add Connection.


Слайд 36

Создание набора данных DataSet Рассмотрим один из возможных способов создания набора данных: 1. Следует открыть окно Data Sources (источники данных) щелчком на вкладке Data Sources. Обычно она находится справа под окном решений Solution Explorer. 2. В окне Data Sources нужно щелкнуть на ссылке Add New Data Source (добавить новый источник данных).


Слайд 37

3. В открывшемся окне Data Source Configuration Wizard (мастер конфигурации источника данных) следует выделить тип источника DataBase и щелкнуть на кнопке Next (дальше). В открывшемся окне следует снова щелкнуть на кнопке Next и щелчком на кнопке Нет закрыть окно с предложением копировать данные. Снова нужно щелкнуть на кнопке Next.


Слайд 38

4. Теперь следует указать таблицы и поля, данные из которых Вы хотите иметь в наборе данных. Для этого раскройте узлы Tables (таблицы), Авторы, Книги, Издательства, КнгАвт и поставьте галочки напротив всех четырех таблиц, со всеми полями которых будет связан создаваемый набор данных. Окно мастера конфигурации источника данных должно соответствовать изображению на следующем слайде.


Слайд 39


Слайд 40

Затем нажатием на кнопке Finish нужно завершить создание набора данных. В окне Data Sources, а также в окне решений Solution Explorer отобразится созданный набор данных – объект Библиотека2DataSet.


Слайд 41

При переносе проекта на другой компьютер может возникнуть необходимость изменения пути к файлу базы данных. В этом случае необходимо внести коррекцию в файл app.config конфигурации приложения. Открывается этот файл двойным щелчком на его отображении в окне решений (Solution Explorer). В этом файле путь к базе данных прописан в седьмой строке кода сверху между тегом " и тегом ".


Слайд 42

Отображение информации с помощью объекта DataGridView Элемент управления DataGridView (отображение сетки данных) отображает данные таблицы в виде строк и столбцов. Применим четыре объекта DataGridView для отображения таблицы Книги, таблицы Авторы, таблицы Издательства и таблицы КнгАвт базы данных Библиотека2. Эти управляющие элементы могут быть получены простым перетаскиванием на форму таблиц из окна Data Sources.


Слайд 43

Из окна Data Sources нужно поочередно перетащить на соответствующую форму каждую из таблиц: Книги, Авторы, Издательства и КнгАвт. В результате этих действий на каждой форме появится навигатор BindingNavigator (панель в верхней части формы) и сетка данных.


Слайд 44

Если после этого посмотреть на код каждой формы проекта, то можно увидеть, что система автоматически создала две подпрограммы:


Слайд 45

Поясним назначение этого сгенерированного системой кода на примере кода формы Form1. Подпрограмма Form1_Load при загрузке формы Form1 обеспечивает заполнение таблицы Книги набора данных Библиотека2DataSet данными из базы данных (применяется метод Fill).


Слайд 46

Подпрограмма КнигиBindingNavigatorSaveItem_Click выполняет сохранение данных после их изменения в отображаемой таблице КнигиDataGridView. Запускается эта подпрограмма при нажатии на кнопке КнигиBindingNavigatorSaveItem, находящейся на панели навигации Form1.


Слайд 47

Сохранение данных выполняется за три шага: 1. Проверка корректности введенных данных: Validate(). 2. Сохранение изменений в наборе данных: EndEdit(). 3. Обновление записей в базе данных: Me.TableAdapterManager.UpdateAll _ (Me.Библиотека2DataSet). Теперь, наконец, если запустить проект, то можно убедиться, что можно видеть содержащуюся в базе данных информацию. Эту информацию в базе данных можно редактировать, добавлять и удалять.


Слайд 48

Вид форм показан на следующих слайдах. Записи можно сортировать по значениям в соответствующих полях.


Слайд 49


Слайд 50


Слайд 51


Слайд 52

Изменение информации в базе данных Для полноценной работы с базой данных кроме отображения ее содержимого, необходимо иметь возможность исправлять обнаруженные ошибки, добавлять новую информацию, а также удалять устаревшую. Если в объекте DataGridView сделаны изменения данных, то эти изменения сделаны лишь в наборе данных. В самой же базе данных эти изменения еще не учтены. Для сохранения этих изменений в базе данных предусмотрена кнопка Save Data (сохранить данные), находящаяся на панели навигации формы.


Слайд 53

Для проверки возможности изменения записей в базе данных нужно запустить проект. Ваш экран будет выглядеть примерно так, как показано на рисунке:


Слайд 54

В режиме выполнения проекта Вы можете изменять ширину столбцов сетки данных, перетаскивая их границы в заголовке таблицы. Ширину столбцов можно менять и в режиме разработки. Она задается значением свойства Width при работе в окне Edit Columns. Можно использовать функцию автоматической сортировки. Щелчок в заголовке поля приводит к сортировке строк по этому полю. Последующий щелчок в заголовке поля приведет к сортировке в обратном направлении.


Слайд 55

Возможно добавление новой записи. При этом следует придерживаться определенного порядка выполнения изменений. Пусть требуется добавить в базу данных данные о книге: Якушева Нина, Visual Basic.NET, МЗ ПРЕСС, 2003. 100 руб., 2 экземпляра. Сначала следует добавить запись в таблице Издательства. Для этого нужно щелкнуть в ячейке последней строки, которая содержит слева от строки значок звездочки. Закончив ввод названия издательства, установите курсор в любой другой строке таблицы. При этом сделанное изменение из сетки данных будет передано в набор данных.


Слайд 56

Для передачи сделанного изменения из набора данных в базу данных нужно нажать на кнопку навигатора Save Data. Затем следует аналогично добавьте одну запись или несколько записей (по числу авторов книги) записей в таблице Авторы. Сначала в соответствующем поле нужно ввести фамилию автора, затем ввести его имя. Для передачи сделанного изменения из набора данных в базу данных нужно нажать на кнопку навигатора Save Data.


Слайд 57

В третью очередь следует добавить запись в таблице Книги и сохранить ее в базе данных. Нужно заполнить все поля этой записи. В поле Изд-во следует выбрать соответствующие данные из выпадающих списков. И, наконец, следует сделать одну или несколько (по числу авторов книги) записей в таблице КнгАвт и сохранить их в базе данных.


Слайд 58

Удаление записей из базы данных выполняется в обратном порядке. Первой должна быть удалена запись из таблицы КнгАвт. Для этого следует щелкнуть слева от удаляемой записи, тем самым выделив ее всю, и нажать на кнопке навигатора Delete. Для сохранения изменений в базе данных следует снова нажать на кнопку Save Data. Затем следует, соблюдая указанную последовательность, удалить записи в таблицах Книги, Издательства, Авторы.


Слайд 59

Возможно изменение информации в любом поле. Для этого следует выделить поле, нажать на кнопку Delete и ввести новую информацию. После изменения информации поля, эти изменения передаются в набор данных при переходе на другое поле. Для передачи сделанных изменений из набора данных в базу данных следует нажать на кнопке Save Data на панели навигатора.


Слайд 60

Отладка Отладка – это устранение в программе причин, возникновения ее некорректного выполнения, а также применение защиты от некорректных действий пользователя. Программа может не быть корректной по следующим причинам: Синтаксические ошибки (состоят в нарушении правил синтаксиса). Логические ошибки. Исключения (невозможно продолжение корректного выполнения программы).


Слайд 61

О синтаксических ошибках среда сообщает на этапе ввода программного кода. Те части кода, где обнаружены синтаксические ошибки, среда VB.NET подчеркивает синей волнистой линией, сопровождая подсказкой существо ошибки. Это упрощает обнаружение и исправление синтаксических ошибок.


Слайд 62

Исключения предотвратить сложнее. Они могут быть порождены не только ошибками кода, но и неадекватными действиями пользователей. Вот лишь несколько примеров: Попытка открыть несуществующий файл. Попытка деления числа на нуль. Выход аргумента функции за пределы области определения функции. Переполнение разрядной сетки в случае целочисленных данных. Ввод символьных данных вместо ожидаемых числовых (или наоборот).


Слайд 63

Самыми сложными для устранения среди всех возможных являются логические ошибки. При их появлении код выполняется, но результатов либо нет вообще, либо они не соответствуют ожидаемым. Для выявления причин логической ошибки и ее устранения требуется обширное тестирование.


Слайд 64

Тестирование состоит в прогоне программы на таких исходных данных, для которых результаты получены заранее вручную. VB предлагает некоторые эффективные инструменты для поиска источников ошибок.


Слайд 65

Режимы среды VB Среда VB.NET может находиться в одном из трех состояний: Design (проектирование). Running (выполнение). Debugging (пауза).


Слайд 66

Режим паузы Приложение запускается нажатием клавиши F5 или кнопки Start Debugging панели инструментов среды VB и оказывается в режиме выполнения. Переход в режим паузы из режима выполнения выполняется щелчком на кнопке Break All стандартной панели инструментов.


Слайд 67

Недостаток такого способа перехода в том, что заранее не известно, при выполнении какой инструкции кода будет нажата кнопка Break All и произойдет переход в режим паузы. В режиме паузы можно выбирать один из вариантов: продолжать выполнение программы или перейти в режим проектирования.


Слайд 68

Из режима паузы в режим выполнения можно перейти, нажав повторно клавишу F5 или щелкнув на кнопке Continue. Обратите внимание, что в режиме паузы кнопка Start Debugging носит название Continue. Название текущих режимов Running и Debugging отображается в квадратных скобках в строке заголовка VB.


Слайд 69

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


Слайд 70

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


Слайд 71

Точка останова Есть еще одна возможность переключения приложения в режим паузы. Это возможно благодаря точке останова (Breakpoint). Точка останова – это выделенная строка программы, на которой автоматически останавливается выполнение программы. По достижении этой строки программы VB переходит в режим паузы.


Слайд 72

Если щелкнуть левой кнопкой мыши на полосе индикатора (серая вертикальная полоса слева от программного кода), то в этом месте появится красная точка и находящаяся рядом строка закрашивается красным цветом. Точки останова предназначены для принудительной остановки программы в нужном месте и перехода в режим паузы. В результате становятся доступными все средства отладки.


Слайд 73


Слайд 74

В режиме паузы VB особым образом выделяет строку, которая должна выполняться следующей. Сама строка выделяется желтым цветом, а на полосе индикатора рядом с ней появляется желтая стрелка. Если выполнение программы прерывается в точке останова, то оба выделения комбинируются.


Слайд 75

Чтобы продолжить выполнение программы с любой другой строки, необходимо желтую стрелку на полосе индикатора просто перетащить мышью на нужную строку.


Слайд 76


Слайд 77

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


Слайд 78

Шаг с заходом (Step into) Для выполнения следует нажать кнопку Step into на стандартной панели инструментов. При пошаговом выполнении строки кода выполняются одна за другой. После выполнения одной строки кода маркер следующей строки перемещается на одну строку.


Слайд 79

Шаг с обходом (Step Over) Шаг с обходом подобен шагу с заходом. Различие проявляется только при вызове текущей процедурой других процедур. Если при шаге с заходом осуществляется переход в вызываемую процедуру, то шаг с обходом выполняет вызов процедуры как единичный оператор.


Слайд 80

Шаг с обходом выполняется нажатием кнопки Step Over на стандартной панели инструментов. Этот вид пошагового выполнения представляет интерес при поиске ошибки в процедурах, содержащих вызовы других процедур. Сначала можно протестировать текущую процедуру без захода в вызываемые процедуры. Если же выяснится, что ошибка возникает в вызываемой процедуре, то при следующем проходе следует войти в эту процедуру.


Слайд 81

Шаг с выходом (Step Out) Команда Step Out позволяет выполнить оставшуюся часть текущей процедуры.


Слайд 82

Отображение значений Кроме контроля хода выполнения программы важной задачей инструментов отладки VB является проверка значений переменных и выражений. Контроль значений возможен только в режиме паузы.


Слайд 83

Самый простой вариант просмотра значения переменной или выражения – использование окна Quick Info (быстрая информация). Для открытия этого окна достаточно установить курсор мыши на соответствующей переменной в окне кода. Если необходимо увидеть значение выражения, его следует выделить, а затем установить на нем курсор мыши.


Слайд 84

Окно Autos (видимые переменные) В этом окне отображаются значения переменных, используемых в текущей инструкции и в предыдущей инструкции. Для открытия этого окна следует вызвать команду меню Debug, Windows, Autos.


Слайд 85

Окно Autos (видимые переменные)


×

HTML:





Ссылка: