* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Извлечение и обновление данных с помощью объектов DataAdapter и DataSet
8 февраля 2009
Объекты Data Reader очень быстро извлекают данные, но не позволяют мо- дифицировать содержимое БД. Сейчас вы реализуете доступ к данным для чтения и записи с помощью объектов DataAdapter и DataSet. Вы должны заполнить объект DataSet с помощью объектов DataAdapter, связать DataSet с элементом управления DataGrid и обновить БД модифицированными данными.
^ Как реализовать доступ к БД для чтения и записи 1. Перетащите с вкладки Windows Forms панели Toolbox на поверхность формы элемент управления Button и установите его свойство Text в «Click here for Exercise 1». 2. В окне дизайнера дважды щелкните элемент управления Вшюп2 (butfon2)t чтобы создать обработчик по умолчанию для события Button!. Click (Button2.Click), и добавьте к нему следующий код: Visual Basic .NET Dim Exercise2 As New Form2{) Exercise2.Show() Visual C# Form2 Exercise2 ~ new Form2(); Exercise2.Show(); 3. В меню File выберите команду Add New Item\Windows Form и щелкните Open, чтобы добавить новую форму. 4. В окне Server Explorer раскройте узел, расположенный слева от нового соедине- ния, чтобы отобразить его дочерние узлы. Щелкните узел, расположенный ря- дом с узлом Tables, чтобы открыть список таблиц БД. 5. Перетащите значки таблиц Customers, Items и Orders из окна Server Explorer на форму — для всех этих таблиц будут созданы объекты OleDb Data Adapter, а также объект OleDbConnection, представляющий соединение с БД. 6. Перетащите объект DataSet с вкладки Data панели Toolbox на форму — откроет- ся диалоговое окно Add Dataset. Выберите в нем Untyped Dataset и щелкните ОК. 7. Перетащите с вкладки Windows Forms панели Toolbox на форму две кнопки и DataGrid. Установите для свойств, перечисленных в таблице 6-8, указанные в таблице значения. Таблица 6-8. Свойства элементов управления, размещенных на форме Form! Свойство Значение Button J. Text (button I. Text) Get Data Button2. Text (button2. Text) Update Data DataGridLDataSource (Data Grid I. Data Source) DataSet 1 8. В окне конструктора дважды щелкните элемент управления Buttonl (button!), чтобы вызвать редактор кода с обработчиком по умолчанию для события Buttonl. Click (button I.Click), Добавьте к нему следующий код: Visual Basic .NET ' Поочередно вызовите метод Fill для каждого объекта ' DataAdapter и добавьте результаты к объекту DataSet. OleDbOataAdapterl.Fill(DataSetl) QleDbDataAdapter2.Fill(DataSet1) OleDbDataAdapter3.Fill(DataSet1) Visual C# // Поочередно вызовите метод Fill для каждого объекта // DataAdapter и добавьте результаты к объекту DataSet, OleDbDataAdapterl.Fill(dataSetl); oleDbDataAdapter2.Fill(tiataSet1); oleDbDataAdapterS.Fill(dataSetl); 9. В окне дизайнера дважды щелкните Button! (button2), чтобы открыть обработчик по умолчанию для события Click (button2.Click) в редакторе кода, и добавьте к нему следующий код: Visual Basic .NET ' Поочередно вызовите метод Update для каждого объекта DataAdapter и обновите объект DataSet, OleDbDataAdapterl.Update(DataSet1) QleDbDataAdapter2.Update(DataSet1) OleDbDataAdapterS.Update(DataSetl) Visual C# // Поочередно вызовите метод Update для каждого // объекта DataAdapter и обновите объект DataSet. OleDbDataAdapterl.Update(dataSetl); oleDbDataAdapter2.Update(dataSet1); oleDbDataAdapter3.lipdate(dataSet1); 10. Сохраните и протестируйте приложение. Открыв первую форму приложения, щелкните кнопку с надписью «Click here for Exercise 2*, чтобы открыть создан- ную в этом форму. По щелчку кнопки с надписью «Get Data» в элемент управле- ния DataGrid будут загружены данные. Чтобы просмотреть содержимое Data- Grid, раскройте в верхнем левом углу DataGrid узел со списком таблиц. Для про- смотра содержимого таблицы щелкните соответствующий элемент списка. Зна- чения в DataGrid можно модифицировать и, щелкнув кнопку «UpdateDate», пе- ренести изменения в БД. Пимечание Хотя в БД эти таблицы связаны, в объекте DataSet никаких связей между ними нет, поэтому следует проявлять осторожность при обновлении БД. В следующем упражнении вы добавите объект DataRelations к типизированному объекту DataSet.