Использование графического интерфейса для отображения информации, содержащейся в базе данных
База данных должна быть создана предварительно. Для создания базы можно использовать Server Explorer. Для нормальной работы каждая из таблиц должна иметь первичный ключ. Если не предусматривается удаление записей, например, программа нужна только для просмотра информации, первичный ключ можно не создавать.
На первом этапе необходимо создать источник данных. Для этого нужно обратиться к пункту основного меню Data и выбрать подпункт Add New Data Source (добавить источник данных).
Далее необходимо выбрать тип объекта DataBase. После чего определить соединение (Connection). Если ранее выполнялась работа с базами данных аналогичным образом или через Server Explorer, можно выбрать ранее созданное соединение. В противном случае необходимо создать новое соединение нажав на кнопку NewConnection.
Далее предлагается выбрать тип источника данных. Microsoft Visual Studio имеет большой набор различных типов источников данных. Версия Visual Studio, установленная у нас в лаборатории, позволяет воспользоваться только двумя типами: Microsoft Access Database File и Microsoft SQL Server Database File. Мы работаем с Microsoft SQL Server Database File.
Далее необходимо выбрать файл базы данных, с которой мы будем работать. При этом может быть задан вопрос, включать ли в проект эту базу данных. В нашем случае включать не надо (если мы включим – все изменения базы данных, выполненные в процессе отладки программы, будут игнорироваться).
После этого будет предложено запомнить Connection String в конфигурацию программы (файл с именем программы и расширением config). Если мы это сделаем, то в дальнейшем при изменении имени сервера или расположения файла базы данных, можно не менять текст программы, а просто внести изменение в файл с расширением config.
После этого будет предложено выбрать таблицы, которые будут включены в источник данных. Можно выбирать таблицы целиком или отдельные колонки таблиц.
После того, как таблицы выбраны, нажимается кнопка Finish. В результате будет создан класс, производный от класса DataSet, который будет содержать все выбранные таблицы и выбранные колонки таблиц.
Имеется возможность обратиться к дизайнеру и внести изменения в созданный класс. Можно вообще создавать такой класс, не обращаясь к источнику данных. Дизайнер позволяет вводить новые таблицы, изменять и добавлять колонки таблиц. При ручном создании может возникнуть несоответствие между созданным классом и реальной базой данных.
Для того, чтобы отобразить информацию воспользуемся компонентом DataGridView (хотя можно использовать и другие компоненты: DataGrid, ListBoxBox). При переносе на форму компонента DataGridView будет предложено выбрать источник данных. Выберем ранее созданный источник данных (Other Data Sources –> Project Data Sources). В данном источнике данных мы можем выбрать только одну таблицу, которая будет отображаться в DataGridView. При этом у таблицы DataGridView в свойство DataSource будет занесен объект DataSet, а в свойство DataMember – выбранная таблица объекта DataSet.
После этого будет автоматически создан объект DataSet из ранее созданного класса, объект TableAdapter и объект BindingSource. Последний объект является связывающим звеном между источником данных и компонентом, отображающим данные.
Путем изменения свойства Filter данного объекта можно ограничить набор записей, отображаемых на компоненте DataGridView (или аналогичном). При помощи свойства Posision (доступного только в режиме выполнения) можно изменять текущую запись, отображаемую на DataGridView.
TableAdapter позволяет загружать таблицы DataSet из реальной базы данных и записывать в базу данных измененные и вновь созданные записи.
Оператор для загрузки таблицы в DataSet формируется автоматически в методе Form1_Load (этот метод также формируется автоматически). Оператор загрузки таблицы использует метод Fill объекта TableAdapter. В качестве параметра этого метода используется таблица объекта DataSet. При этом он будет вызываться при загрузке формы. Если имеется необходимость загружать данные в DataSet в процессе работы пользователя с программой, то следует этот оператор убрать из Form1_Load и вставить его в текст программы в другое место (например, в обработчик нажатия на кнопку, помещенную на форму).
Действия пользователя по изменению данных, отображенных в таблице, а также при вводе новых строк автоматически отображается в промежуточном хранилище DataSet. Для того чтобы изменения были записаны в хранимую базу данных, необходимо воспользоваться методом Update объекта TableAdapter. В качестве параметра обычно используются та же таблица, что и при обращении к методу Fill.
Компонент DataGridView не имеет средств для удаления строк таблицы. Если в процессе редактирования требуется удалять строки, эти действия должен обеспечить разработчик программы. Это делается обычно следующим образом: добавляется кнопка "Удалить", при нажатии на которую удаляется строка из таблицы DataSet. Можно также ввести компонент ContextMenu и связать его с DataGridView. Как в первом, так и во втором случае возникает проблема определения индекса удаляемой записи.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.