- •Часть 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 Поиск и сортировка данных
Удаление строк из объекта DataTable
Для удаления объекта DataRow из объекта DataTable служат два метода: метод Remove объекта DataRowCollection и метод Delete объекта DataRow. Метод Remove удаляет объект DataRow из коллекции DataRowCollection, тогда как метод Delete только помечает строку для удаления. Фактическое удаление происходит, когда в приложении вызывается метод AcceptChanges. Использование метода Delete позволяет программно проверять, какие строки помечены для удаления, перед их фактическим удалением. Когда строка отмечена для удаления, ее свойство RowState имеет значение Deleted.
Чтобы удалить записи из таблицы данных необходимо вызвать метод Delete объекта DataRow.
БД.Таблица.Rows[№_строки].Delete();
Внимание. Данный метод не удаляет записи физически; вместо этого он помечает записи для удаления.
Если до метода AcceptChanges вызвать метод RejectChanges, то состояние RowState строки возвращается к тому значению, которое оно имело до того, как строка была помечена как Deleted.
Примечание Если состояние RowState объекта DataRow имеет значение Added, означающее, что она недавно была добавлена в таблицу, и затем она помечается как Deleted, то строка удаляется из таблицы.
При использовании метода Remove для удаления строки она полностью удаляется из таблицы, однако объект DataAdapter не удаляет строку в источнике данных.
Метод Remove объекта DataRowCollection получает объект DataRow в качестве аргумента и удаляет его из коллекции, как показано в следующем примере.
БД.Таблица.Rows.Remove(DataRow);
Пример. В учебной базе данных необходимо удалить текущую запись:
Для решения этой задачи необходимо прописать код, аналогичный следующему:
private void button1_Click(object sender, EventArgs e)
{
SotrudnicDataSet1.workerRow rw= sotrudnicDataSet1.worker.FindBypasportwork(Convert.ToInt32(textBox2.Text), allDataGridView.CurrentRow.Cells[4].Value.ToString());
SotrudnicDataSet1.personRow rp = sotrudnicDataSet1.person.FindBypasport(Convert.ToInt32(textBox2.Text));
DataRow[] rws;
rws = sotrudnicDataSet1.Tables["worker"].Select("pasport =" + textBox2.Text);
if (rws.Count() == 1)
{
rw.Delete(); rp.Delete();
}
else rw.Delete();
if (MessageBox.Show("удалить запись?", "Внимание", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
this.Validate();
this.personBindingSource.EndEdit();
this.workerBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.sotrudnicDataSet1);
allTableAdapter.Fill(this.sotrudnicDataSet1.All);
};
Примечание Если получено свойство count объекта DataRowCollection, в итоговом результате будут присутствовать записи, помеченные для удаления. Для получения точного количества только тех записей, которые не были помечены для удаления, можно просмотреть свойства RowState каждой записи в коллекции (записи, отмеченные для удаления, имеют RowState, равный Deleted). Также можно создать представление данных набора данных, которое выполнит фильтрацию на основе состояния строки и получит свойство count непосредственно оттуда.