Опубликован: 13.07.2010 | Уровень: специалист | Доступ: платный
Самостоятельная работа 9:

Редактирование данных в среде ADO.NET

Аннотация: Свойства и методы объектов DataAdapter, DataSet. Редактирование данных средствами DataSet. Добавление и удаление строк в наборе данных средствами среды ADO.NET. Выполнение параметризованных хранимых процедур в среде ADO.NET. Динамическое создание и выполнение пакетных заданий по обновлению данных в среде ADO.NET.

Файлы к лабораторной работе Вы можете скачать здесь.

В приложении гораздо проще обеспечить пользователю возможность только просмотра данных. Но ни одно реальное приложение не обходится без использования средств редактирования и обновления данных. Для выполнения этой задачи можно применить объект DataSet среды ADO.NET, а также некоторые из его свойств и методов, - чем мы и займемся в данной работе. Для связи с базой данных мы будем использовать объекты DataAdapter, DataSet, DataTable, DataRow.

Некоторые свойства и методы объектов DataAdapter, DataSet
Объект Свойство или метод Описание
DataAdapter Fill() Заполняет объекты DataTable или DataSet
DataAdapter Update() Выполняет обновления в подсоединенных DataTable или DataSet
DataAdapter UpdateCommand Содержит оператор SQL, применяемый для обновления данных
DataAdapter DataAdapter. UpdateCommand. Connection.Close() Принудительно закрывает соединение с базой данных
DataAdapter DataAdapter. UpdateCommand. Connection.Close() Открывает соединение с базой данных
DataSet Tables Представляет коллекцию таблиц, находящихся в наборе данных
DataSet Tables[tableName].Rows Содержит коллекцию строк, принадлежащих к указанной таблице в наборе данных
DataSet AcceptChanges() Подтверждает изменения, передаваемые на сервер

Создание главной формы приложения

  • Создайте новое приложение Windows Application C# с именем DataEdit


  • Добавьте в приложение форму Form0 из приложения DataView лабораторной работы №8. Для этого щелкните правой кнопкой мыши на узле прoекта DataEdit и выпоните команду Add/Add Existing Item (Добавить существующий)


В открывшемся окне перейдите в место размещения файла Form0 предыдущего проекта, отметьте его и щелкните по кнопке Open

Убедитесь, что в панели Solution Explorer проекта DataEdit появился этот файл Form0. Оболочка физически скопировала его из каталога размещения проекта DataView в папку текущего проекта DataEdit.


  • Откройте файл Form1.cs в рещиме редактирования кода. Для этого в панели Solution Explorer щелкните правой кнопкой мыши на имени файла Form1.cs и через контекстное меню выполните команду View Code


  • Через раскрывающийся список в верхней части окна редактора перейдите к функции Main()


  • Удалите весь код, связанный с точкой входа, который идет за блоком Windows Form Designer generated code. Подлежащий удалению код имеет следующий вид
/// 
/// The main entry point for the application.
/// 
[STAThread]
static void Main() 
{
  Application.Run(new Form1());
}
Листинг 9.1. Код точки входа в классе Form1, который нужно удалить

Здесь мы удалили точку входа из сгенерированного мастером файла Form1.cs потому, что она уже существует в добавленном из приложения DataView файле Form0.cs. А две точки входа Большой Билл не перенесет.

  • Откройте файл Form0.cs в режиме View Code и измените пространство имен с DataView на DataEdit как показано ниже
//namespace DataView
namespace DataEdit
Листинг 9.2. Изменить в файле Form0.cs пространство имен приложения
  • Закомментируйте в конце файла Form0.cs тело функций-обработчиков событий трех последних кнопок
private void button1_Click(object sender, System.EventArgs e)
{
  Form1 frm = new Form1();
  frm.Show();
}
  
private void button2_Click(object sender, System.EventArgs e)
{
//  Form2 frm = new Form2();
//  frm.Show();
}
  
private void button3_Click(object sender, System.EventArgs e)
{
//  Form3 frm = new Form3();
//  frm.Show();
}
  
private void button4_Click(object sender, System.EventArgs e)
{
//  Form4 frm = new Form4();
//  frm.Show();
}
Листинг 9.3. Комментируем вызовы пока не существующих форм
  • Запустите приложение и убедитесь, что работает только первая кнопка, которая вызывает пустую форму Form1.
  • Переключите форму Form0 в режим Design и измените содержание текстовых меток, чтобы главная форма выглядела согласно плану выполнения работы так


Таким образом, мы создали главную форму, которая будет вызывать наши будующие другие формы. Мы не стали проектировать главную форму с нуля только ради тренировки, хотя традиционный путь в данном случае был бы короче, поскольку настройки формы Form0 очень простые. Но мы ленивые программисты на тупую работу, поэтому таким путем будем часто прикуривать в новом проекте от уже существующего. Не даром создатели оболочки предусмотрели для этих целей соответствующие возможности - видать слыхали о нашем загадочном русском характере.

Александр Очеретяный
Александр Очеретяный
Украина, Киев
Анастасия Балыбердина
Анастасия Балыбердина
Украина, Киев, НТУУ КПИ