- •Часть 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 Поиск и сортировка данных
Поиск заданной строки в таблице
Большинство приложений, получающих данные, нуждаются в доступе к отдельным записям, которые отвечают некоторым критериям. Поиск конкретной строки в наборе можно осуществлять по первичному ключу или по произвольному полю.
Поиск строки со значением первичного ключа
Чтобы найти строку в типизированном наборе данных со значением первичного ключа:
Вызовите метод FindBy, который использует первичный ключ таблицы для поиска строки.
В следующем примере колонка passport является первичным ключом таблицы Person, поэтому метод FindBy генерируется как FindBypassport. В примере показано, как присвоить определенный объект DataRow переменной, используя созданный метод FindBy.
Пример: По значению, введенному в текстовое поле, необходимо найти фамилию сотрудника:
Если сотрудник с заданным паспортом отсутвует, то программой должно быть сгенерировано сообщение:
Для решения поставленной задачи в обработчике события нажатия кнопки найти необходимо прописать следующий код:
private void button1_Click(object sender, EventArgs e)
{
DataRow rp = sotrudnicDataSet1.person.NewRow();
rp = sotrudnicDataSet1.person.FindBypasport
(Convert.ToInt32(textBox1.Text));
if (rp != null)
label2.Text = "Фамилия - " + rp["fio"].ToString();
else
MessageBox.Show("Сотрудник с заданным паспортом отсутствует!");
}
Примечание. На форме может не быть таблицы DataGridView, но для работы метода FindBy должны быть объекты: personBindingSource, personTableAdapter, sotrudnicdaaset1:
Чтобы найти строку в нетипизированном наборе данных со значением первичного ключа
Вызовите метод Find из коллекции DataRowCollection, передав первичный ключ в качестве параметра.
В следующем примере показано, как объявить новую строку с именем R и присвоить ей возвращаемое значение метода Find. Если первичный ключ найден, содержимое индекса столбца 1 отображается в окне сообщения.
string s = "значение первичного ключа";
DataRow R = БД.Tables["имя_таблицы"].Rows.Find(s);
if (R != null)
{
MessageBox.Show(R[1].ToString());
}
else
{
MessageBox.Show("Строка с первичным ключом " + s + "не найдена");
}
Поиск строк по значениям столбцов
Чтобы найти строки на основе значений в любом столбце:
Таблицы данных создаются методом Select, который возвращает массив DataRow на основе выражения, переданного методу Select.
В следующем примере показано использование метода Select из DataTable для поиска конкретных строк.
private void button2_Click(object sender, EventArgs e)
{
DataRow[] rps;
rps=sotrudnicDataSet1.person.Select("fio Like '"+textBox2.Text + "%'");
if (rps.Count() !=0)
label5.Text = "Фамилия - " + rps[0]["fio"].ToString();
else MessageBox.Show("Сотрудник с заданной фамилией не найден!");
}
Внимание.
Вместо команды:
rps = sotrudnicDataSet1.person.Select("fio Like '" + textBox2.Text + "%'");
можно применить команду:
rps=sotrudnicDataSet1.Tables["person"].Select("fio Like '" + textBox2.Text + "%'");
