Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2021-04-18 | 106 |
5.00
из
|
Заказать работу |
Если необходимо осуществить поиск по нескольким полям, то предложение WHERE должно выглядеть подобно следующему:
«Where (условие1) and (условие2)»
Восстановление всех записей в таблице
Если необходимо скрыть результаты поиска и отобразить все данные таблицы, то следует прописать команду:
this.Адаптер. Fill (this.БД.Таблица);
например,
this. personTableAdapter.Fill(this.sotrudnicDataSet1.person);
Сортировка
Для сортировки данных в таблице по одному определенному полю следует применять команду:
Источник. Таблица = " поле направление ";
например,
if (comboBox1.Text=="фамилия") personBindingSource.person="fio Desc";
Для указания направления сортировки применяют ключевые слова: Desc – сортировка по убыванию, Asc – сортировка по возрастанию.
Агрегирование
Для применения к полям таблицы функций агрегирования и отображения результатов этих функций на форме, необходимо:
1. Открыть конструктор данных, например, выбрав в контекстном меню к БД в окне Источники данных команду Изменить набор данных в конструкторе:
2. Если таблица запросов (DataTable) отсутствует, то создать ее. В нашем примере это таблица All.
3. Через контекстное меню к таблице запросов выбрать команды Добавить, Запрос…
5. В следующем окне выбрать команду «Инструкция Select, возвращающая одиночное значение» и нажать кнопку Далее
6. В следующем окне нажать кнопку «Построитель запросов»
7. В следующем окне необходимо прописать запрос SQL, например:
Select функция(поле) AS имя_результата
From таблица
Замечание. Все поля должны быть выключены.
8. Для проверки созданного запроса можно нажать кнопку «Выполнить запрос». Если ошибки отсутствуют, то в появившемся окне проверки запроса следует нажать кнопку «ОК», а в окне Построитель запросов – кнопку «Далее».
9. В окне Выбор имени функции следует ввести имя для новой функции агрегирования и нажать кнопку «Далее».
label8.Text = this.allTableAdapter.Avg_sal().ToString();
Пример:
Замечания.
1) Если запрос должен возвращать больше одного значения, то на шаге пятом следует выбрать команду «Запрос Select, возвращающий строки»
2) Если необходимо посчитать функцию агрегирования для определенной совокупности строк, то следует усложнить запрос:
Select функция(поле) As название результата
From таблица
Where поле=@перем
При этом изменится вызов
label4.Text =this.Адаптер.Avg_sal(значение).ToString();
Вычисляемые поля
Таблица данных в наборе данных может содержать столбцы, значения которых вычисляются, а не считываются из базы данных. Например, в записи, содержащей подробные сведения о сотрудниках, часто имеет смысл определять зарплату с надбавками путем умножения исходной зарплату на некоторый коэффициент. Определять вычисляемые столбцы можно с помощью выражений.
Синтаксис выражения состоит из стандартных операторов. К значениям данных можно обращаться по имени соответствующего столбца (как это делается в инструкциях SQL), а также включать в выражения функции агрегирования, такие как count, avg, sum и др.
Например, выражение для столбца salary, который отображает значение зарплаты, умноженное на коэффициент k, может быть следующим:
s alary* k
Для обращения к столбцам дочерних таблиц можно использовать зарезервированное слово Child, после которого указывается имя столбца. Например, следующее выражение возвращает среднее значение столбца salary во всех связанных дочерних записях:
Avg(Child.salary)
Для создания выражений для столбцов в Конструкторе наборов данных:
1. Откройте таблицу в Конструкторе наборов данных.
2. В требуемой таблице данных выберите столбец, в который требуется добавить выражение, или добавьте к таблице новый столбец.
3. В окне Свойства введите выражение в свойстве Expression.
Для создания выражений для столбцов в компоненте DataGridView:
1. Создайте в DataGridView новый столбец. Для этого в окне Задачи для объекта DataGridView выберите команду Добавить столбец.
2. В появившемся окне Добавить столбец введите Имя столбца и Текст заголовка. Нажмите кнопку Добавить, а затем Закрыь.
Результат:
3. Настройте свойства нового поля. Для этого в окне Задачи для объекта DataGridView выберите команду Правка столбцов.
4. В появившемся окне Правка столбцов установите свойство: DataPtopertyName = (нет) – новый столбец не должен быть привязан ни к какому полю
5. Установите другие необходимые свойства, например, ширину столбца и т.д. и нажмите ОК.
6. В функции обработки события создания вычисляемого поля пропишите код, аналогичный следующему:
private void button1_Click(object sender, EventArgs e)
{
//Создание нового столбца с указанием названия и типа данных
DataColumn col = new DataColumn(" имя ",typeof(тип));
// Добавление столбца в существующую таблицу
Имя_БД.имя_таблицы. Columns. Add (col);
// заполнение столбца значениями
for (int i = 0; i < Имя_БД.имя_таблицы. Count; i ++) {
Convert. ToInt 16(Имя_БД.имя_таблицы.[ i ]["имя"])= значениеж
}
//Отображение столбца в DataGridView
DataGridView. Columns [№1]. DataPropertyName = bDDataSet. DataTable 1. 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();
}
Результат:
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!