Поиск по нескольким значениям — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Поиск по нескольким значениям

2021-04-18 106
Поиск по нескольким значениям 0.00 из 5.00 0 оценок
Заказать работу

Если необходимо осуществить поиск по нескольким полям, то предложение 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. Через контекстное меню к таблице запросов выбрать команды Добавить, Запрос…

  1. В следующем окне нажать кнопку Далее:

 

5. В следующем окне выбрать команду «Инструкция Select, возвращающая одиночное значение» и нажать кнопку Далее

6. В следующем окне нажать кнопку «Построитель запросов»

7. В следующем окне необходимо прописать запрос SQL, например:

Select функция(поле) AS имя_результата

From таблица

Замечание. Все поля должны быть выключены.

8. Для проверки созданного запроса можно нажать кнопку «Выполнить запрос». Если ошибки отсутствуют, то в появившемся окне проверки запроса следует нажать кнопку «ОК», а в окне Построитель запросов – кнопку «Далее».

9. В окне Выбор имени функции следует ввести имя для новой функции агрегирования и нажать кнопку «Далее».

  1. Убедиться в правильности действий, «Готово»

  1. Вызвать метод на форме, например:

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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.005 с.