- •Часть 1.
- •1. Инструментарий среды Visual Studio 2008 по разработке приложений баз данных
- •1.1. Окно Источники данных
- •1.2. Окно Обозреватель баз данных
- •Создание локальной бд с помощью sql Server Compact 3.5 и Visual Studio
- •Общие сведения о локальных данных
- •Добавление в проект базы данных sql Server Compact 3.5
- •Создание новой базы данных sql Server Compact 3.5
- •Добавление существующей базы данных в проект
- •Создание новых таблиц в базе данных
- •Создание столбца с автоматической генерацией значения
- •Создание ограничения ссылочной целостности между таблицами базы данных
- •Заполнение таблиц данными
- •Подключение к данным в приложениях Windows Forms
- •Отображение данных в элементе управления DataGridView в Windows Forms
- •Отображение данных одной таблицы
- •Отображение данных из нескольких связанных таблиц
- •Создание общей таблицы
- •Создание таблицы подстановок
- •Связывание элементов управления Windows Forms с компонентом BindingSource с помощью конструктора
- •Для привязки элемента управления при разработке выполните следующие действия.
- •Переход между строками с помощью элемента управления BindingNavigator
- •Поиск заданной строки в таблице
- •Поиск строки со значением первичного ключа
- •Поиск строк по значениям столбцов
- •Диалоговое окно Построитель условий поиска
- •Агрегирование
- •Вычисляемые поля
- •Модификация строк в наборах данных
- •Добавление строк в наборы данных
- •Получение определенных версий объекта DataRow
- •Редактирование строк в объекте DataTable
- •Удаление строк из объекта DataTable
- •Сохранение данных в источнике данных
- •Чтобы внести изменения в набор данных вызовите метод AcceptChanges в DataSet, DataTable или DataRow:
- •Получение измененных записей
- •Дополнительные сведения по работе с базами данных в Visual Studio
- •Наборы данных в Visual Studio
- •Описание основных компонентов по работе с базами данных
- •Лабораторная работа №3 Создание базы данных «Автотранспорт»
- •Лабораторная работа №4 Агрегированные и вычисляемые поля
- •Лабораторная работа №5 Подстановочные, агрегированные и вычисляемые поля
- •Лабораторная работа №6 Проверочная
- •Лабораторная работа №7 Редактирование
- •Лабораторная работа №8 Поиск и сортировка данных
Вычисляемые поля
Таблица данных в наборе данных может содержать столбцы, значения которых вычисляются, а не считываются из базы данных. Например, в записи, содержащей подробные сведения о сотрудниках, часто имеет смысл определять зарплату с надбавками путем умножения исходной зарплату на некоторый коэффициент. Определять вычисляемые столбцы можно с помощью выражений.
Синтаксис выражения состоит из стандартных операторов. К значениям данных можно обращаться по имени соответствующего столбца (как это делается в инструкциях SQL), а также включать в выражения функции агрегирования, такие как count, avg, sum и др.
Например, выражение для столбца salary, который отображает значение зарплаты, умноженное на коэффициент k, может быть следующим:
salary*k
Для обращения к столбцам дочерних таблиц можно использовать зарезервированное слово Child, после которого указывается имя столбца. Например, следующее выражение возвращает среднее значение столбца salary во всех связанных дочерних записях:
Avg(Child.salary)
Для создания выражений для столбцов в Конструкторе наборов данных:
Откройте таблицу в Конструкторе наборов данных.
В требуемой таблице данных выберите столбец, в который требуется добавить выражение, или добавьте к таблице новый столбец.
В окне Свойства введите выражение в свойстве Expression.
Для создания выражений для столбцов в компоненте DataGridView:
Создайте в DataGridView новый столбец. Для этого в окне Задачи для объекта DataGridView выберите команду Добавить столбец.
В появившемся окне Добавить столбец введите Имя столбца и Текст заголовка. Нажмите кнопку Добавить, а затем Закрыь.
Результат:
Настройте свойства нового поля. Для этого в окне Задачи для объекта DataGridView выберите команду Правка столбцов.
В появившемся окне Правка столбцов установите свойство: DataPtopertyName = (нет) – новый столбец не должен быть привязан ни к какому полю
Установите другие необходимые свойства, например, ширину столбца и т.д. и нажмите ОК.
В функции обработки события создания вычисляемого поля пропишите код, аналогичный следующему:
private void button1_Click(object sender, EventArgs e)
{
//Создание нового столбца с указанием названия и типа данных
DataColumn col = new DataColumn("имя",typeof(тип));
// Добавление столбца в существующую таблицу
Имя_БД.имя_таблицы.Columns.Add(col);
// заполнение столбца значениями
for (int i = 0; i < Имя_БД.имя_таблицы.Count; i++) {
Convert.ToInt16(Имя_БД.имя_таблицы.[i]["имя"])= значениеж
}
//Отображение столбца в DataGridView
DataGridView.Columns[№1].DataPropertyName = bDDataSet.DataTable1.Columns[№2].ToString(); }
где №1 – номер вычисляемого поля в таблице на форме; №2 – номер нового поля в таблице БД. Пример.
private void Form4_Shown(object sender, EventArgs e)
{
//Создание нового столбца с указанием названия и типа данных
DataColumn col = new DataColumn("Calc", typeof(double));
// Добавление столбца в существующую таблицу
sotrudnicDataSet1.All.Columns.Add(col);
// Заполнение столбца значениями
for (int i = 0; i < sotrudnicDataSet1.All.Count; i++)
{if (Convert.ToInt16(sotrudnicDataSet1.All[i]["salary"]) < 2000)
{
sotrudnicDataSet1.All[i]["Calc"] =
(Convert.ToDouble(sotrudnicDataSet1.All[i]["salary"]) * 1.2);
}
else
{
sotrudnicDataSet1.All[i]["Calc"] =
Convert.ToDouble(sotrudnicDataSet1.All[i]["salary"]);
}
}
//Отображение столбца в DataTableGridView
allDataGridView.Columns[6].DataPropertyName =
sotrudnicDataSet1.All.Columns[6].ToString();
}
Результат:
