Создание Windows-приложений на основе Visual C#



              

Изменение записей


До этого момента мы рассматривали только извлечение записей для их просмотра. С помощью модели ADO.NET мы можем извлекать записи, менять их содержимое и вносить измененные записи в базу данных.

Создайте новый проект и назовите его Change_Data. На этот раз мы поработаем с компонентами ADO.NET, и привязывать данные к элементам управления будем, также устанавливая соответствующие свойства в режиме дизайна. Для ускорения разработки интерфейса выделяем все надписи и текстовые поля в режиме дизайна формы в проекте DataBindings, и копируем их. Располагаем вставленные элементы на форме проекта Change_Data — при этом мы избавляемся от необходимости определять свойства Name и Text. Перетаскиваем компонент oleDbDataAdapter и устанавливаем соединение с таблицей "Поставщики" базы данных Microsoft Access RBProduct.mdb. Генерируем объект DataSet и называем его dsProviders. Связываем текстовые поля с соответствующими столбцами таблицы "Поставщики", используя свойство DataBindings (см. рис. 4.51). Переходим в код формы. В конструкторе формы после InitializeComponent вызываем метод Fill объекта DataAdapter:

oleDbDataAdapter1.Fill(dsProviders1);

Проверяем приложение, запуская его. Далее добавляем кнопки для навигации по записям и соответствующие обработчики, используя объект CurrencyManager (можно также воспользоваться готовым проектом DataBindings, изменяя названия объекта DataSet). Добавим теперь кнопки для добавления и удаления записей. Располагаем на форме две кнопки — "Добавить" и "Удалить", в свойстве Name устанавливаем значения btnAdd и btnRemove соответственно. В обработчике кнопки "Добавить" вызываем метод AddNew объекта CurrencyManager:

private void btnAdd_Click(object sender, System.EventArgs e) { cmRecords.AddNew(); }

Для обработчика кнопки "Удалить" также используем встроенный метод RemoveAt, причем если на форме не будет записей, то вызываем окно предупреждения:

private void btnRemove_Click(object sender, System.EventArgs e) { if(cmRecords.Count>0)cmRecords.RemoveAt(cmRecords.Position); else MessageBox.Show("Нет записи для удаления!", "Удаление записи", MessageBoxButtons.OK, MessageBoxIcon.Error);




Содержание  Назад  Вперед