В самостоятельной работе 8 написано: "В пункте "Server name" задаем имя сервера, которое необходимо узнать у преподавателя". Где узнать это имя? |
Упорядочивание списков и вычисляемые столбцы DataSet
Цель работы: Изучить основные приемы и способы сортировки данных при заполнении данными DataSet, динамическое изменение структуры DataSet, создание вычисляемых столбцов в DataSet и связывание их с элементами представления
Основные положения
В результате выполнения лабораторных работ 1 - 10 разработано приложение для учета сотрудников предприятия, основная экранная форма которого приведена на рисунке 11.1.
При аттестации разработанного приложения конечными пользователями были сделаны следующие замечания:
- список сотрудников необходимо упорядочить по алфавиту;
- в списке сотрудников необходимо указывать фамилию, имя и отчество.
Упорядочение списка сотрудников по алфавиту
Данные о сотрудниках считываются из таблицы Employee базы данных с помощью SQL -запроса в объект класса DataSet, с которым связан элемент визуализации данных listBoxEmployee. Данные из таблицы Employee базы данных заполняют таблицу DataSetEmployee в той последовательности, как они записаны в базе данных и соответственно в той же последовательности и отображаются в элементе визуализации данных listBoxEmployee. Для упорядочения списка сотрудников по алфавиту достаточно упорядочить данные получаемые из базы данных с помощью SQL -запроса, т.е. необходимо модифицировать команду Select.
Для формирования новой команды Select необходимо переконфигурировать Data Adapter - daEmployee.
Конфигурирование Data Adapter
- В дизайнере класса DataSetEmployee выделите EmployeeTableAdapter (рисунок 11.2) и через контекстное меню откройте помощник конфигуратора адаптера Table Adapter Configuration Wizard (рисунок 11.3).
- В окне Table Adapter Configuration Wizard нажмите кнопку Query Builder (рисунок 11.3) . В результате будет выведено окно Query Builder построителя SQL -запросов (рисунок 11.4).
- В окно Query Builder построителя SQL -запросов для колонки EmployeeSurname укажите тип сортировки ( Sort Type ) - по алфавиту - Ascending (рисунок 11.5). После этого в команде Select добавится кодПолный вид команды Select следующий:
ORDER BY EmployeeSurname
SELECT JobRoleID, EmployeeSurname, EmployeePatronymic, EmployeeID, EmployeeName, EmployeeStatus, Access, NetName, FirstDate FROM Employee ORDER BY EmployeeSurname
- Завершите формирование SQL -запроса, нажимая кнопки "OK" и "Next" в окне Query Builder.
После компиляции и запуска приложения список сотрудников будет упорядочен по алфавиту, как показано на рисунке 11.6.
Формирование отображения списка сотрудников с полными данными
Для формирования в списке сотрудников информации об фамилии, имени и отчестве необходимо в таблицу Empoyee объекта dsEmployee класса DataSetEmployee добавить вычисляемый столбец и связать с этом столбцом элемент списка отображения listBoxEmployee.
Модификацию необходимо проводить в следующей последовательности.
- Для элемента списка listBoxEmployee очистить привязку к источнику данных. Для этого в методе FormEmployee_Load закомментировать следующие строки кода:
//this.listBoxEmployee.DataSource = this.dsEmployee; //this.listBoxEmployee.DisplayMember = //"Employee.EmployeeSurname";
- Добавляем в класс FormEmployee метод, который будет в таблицу Empoyee объекта dsEmployee класса Data Set добавлять вычисляемый столбец с фамилией, именем и отчеством сотрудника.
private void AddColumsFullName() { dsEmployee.Employee.Columns.Add("FullName", typeof(string), "EmployeeSurname+' '+EmployeeName+' '+EmployeePatronymic"); }
- Добавляем в класс FormEmployee метод, который будет связывать элемент списка очистить привязку listBoxEmployee с объектом dsEmployee класса Data Set.
private void AddListBoxEmployeeDataSource() { listBoxEmployee.DataSource = this.dsEmployee; listBoxEmployee.DisplayMember = "Employee.FullName"; }
- Вновь созданные методы будем вызывать при загрузке формы FormEmployee. Для этого модифицируем метод Load, добавив в него после метода EmployeeFill вызов методов AddColumsFullName и AddListBoxEmployeeDataSource.
- После компилирования и запуска программы экранная форма "Учет сотрудников" должна иметь вид, аналогичный, приведенному на рисунке 11.7.
Задание на лабораторную работу
- Изучите теоретический материал.
- Модифицируйте приложение для обеспечения:
- вывода списка сотрудников, содержащего фамилии, имена и отчества;
- упорядочения выводимого списка сотрудников по алфавиту.
- Протестируйте приложение.