Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 171

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 165 166 167 168 169 170 < 171 > 172 173 174 175 176 177 .. 260 >> Следующая

"ORDER BY ProductID" Dim da As New 01eDbDataAdapter{st rSQL, strConn) Dim ds As New DataSet () da.Fill(ds)
Visual C# .NET string strConn, atrSl'L:
strConn = "Provider=SQL0LEDe; Data Source=(local)\\NetSDK;" +
"Initial Catalog=Northwlnd;Trusted_Connection=Yes;"; strSQL = "SELECT OrderlD, ProductID, Quantity, UnitPrice " +
"FROM [Order Details] WHERE OrderlD = 10503 " +
"ORDER BY ProductID"; OleDbDataAdapter da = new OleDbDataAdapterfstrSOL, strConn); DataSet ds = new DataSet(); da.Fill(ds);
Если новому объекту DataTable требуется задать имя Order Details, код можно изменить дг.умч способами. Во-первых, задать свойству TableSauii нужное значение при помощи перегруженного метода Fill.
Visual Basic .NET
Dim da As New 01eDbDataAdapter(strSQL, strConn) Dim ds As New DataSetO da.FilKds, "Order Details")
Visual C#
OleDbDataAdapter da = new OleDbDataAdapter (strSOt, strConn); DataSet ds = new DataSetO;
da.FilKds, "Order Details");
Во-вторых, добавить элемент в набор TableMappings объекта DataAdapter, чтобы последний знал, что сопоставлен с объектом DataTable под именем Order Details:
Visual Basic NET
Dim da As New 01eDbDataAdapter(strSQL, strConn) da.TableMappings,Add("Table", "Order Details") Dim ds As New DataSetO da.Fill(ds)
Visual C# -NET
OleDbDataAdapter da = new 01eDbDataAdapter(strSOL, strConn); da.TableMappings.AddC'Table", "Order Details");
ГЛАВА 0 Передача обновлений в базу данных
393
DataSet = new SataSetQ; da.Fiii(ds);
При передаче обновлений набор работает аналогичным обра-
зом. Если методу DaitiAdnpierJ 'petal передать лишь объект IhttaSet. ОаШШарко на основе своего набора TableMappings определит, какой объект DataTable из состава DataSet нужно просмотреть:
Visual Basic NET
Dim da As New OleDbDataAdepterCstrSGL, strConn) da.TableMappings.Add("Table", "Order Details") 'Опрвдаяве.» логику е^ноблечмя
ds As New DataSetO da.Fill(ds)
'Изменяв группу записей da.Update(ds)
Visual C# .NET
OleDbDataAdapter da = new 01eDbDataAdapter(strSQL, strConn); логику
da.TableMappings.Add("Table", "Order Details");
DataSet ds = new DataSetO;
da.Fill(ds);
/./Изке«яе* группу записей da.Update(ds);
Если набор TableMappings объекта DataAdapter не заполнялся, используйте либо метод ^^.принимающий объект DataSet и имя таблицы, либо метод Update, принимающий объект DataTable:
Visual Basic
Dim da As New strConn)
логику Dim ds As New DataSetO da.FilKds, "Order Details") группу
da.Update(ds, "Order Details") или
Dim da As New strConn)
¦Определяем логику обновления Dim tbl As New DataTableC) da.Fill(tbl)
группу записей
da.Update(tbl)
394 Часть III Автономная работа с данными: объект DataSet модели ADO МЕТ
Visual C# NET
OleDbDataAdapter da = new OleDbDataAdapte.r(strSOL. strConn);
//Определяем логику обновления
DataSet ds = new DataSetC);
da.FilKds, "Order Details");
//Изменяем группу записей
da.UpdateCds, "Order Details");
//или
OleDbDataAdapter da = new 01eDbDataAdapter(strSut. strConn);
//Определяем логику обновления
DataTable tbl = new DataTableC);
¦da.Fill(tbl);
//Иакемяее группу записей
da.Update(tbl);
Как правило, управлять объектом DataTable, используемым при вызове методов Fkil,'L-]cifi/'it,'r.Fi! и Da'i%Ae<%?-'.z?.U?s4ffli следует посредством одинаковой логики.
Лучший способ обновления
ADO.NHT предоставляет множество вариантов передачи обновлений. Можно генерировать логику обновления в период выполнения при помощи объектов mandBuitder. Или предоставить собственную логику обновления в коде, передавая изменения средствами запросов INSERT, UPDATE и DELETE или вызовов хранимых процедур. Кроме того, к вашим услугам мастер Data Adapter Configuration Wizard, который позволяет быстро создать логику обновления в период разработки. Что же выбрать?
Ответ в значительной степени зависит от параметров приложения. Чтобы достичь максимальной производительности, можно сконфигурировать объекты DataAdapter для передачи обновлений посредством вызовов хранимых процедур. Однако если приложение должно работать с БД, например Microsoft Access, не поддерживающими хранимые щс.гуры. данное решение неприемлемо. Воспользуйтесь запросами INSERT, UPDATE и DELETE. Все это следует учитывать при выборе подходящего для приложения способа обновления.
С общей точки зрения, рекомендую вам по возможности передавать изменения с помощью вызовов хранимых процедур. Если ваш приоритет — взаимодействие с различными СУБД, используйте обновления на основе запросов (INSERT, UPDATE и DELETE). Независимо от выбранного вами способа обновления, создавайте собственную логику обновления. Применяйте средства генерации кода типа мастера Data Adapter Configuration Wizard, чтобы сэкономить время на разработку, и избегайте генерировать логику обновления в период выполнения. Если из главы вы запоминаете что-то одно, то пусть это будет вот что: используйте объекты СоттапаЪшЫегъ приложениях только при крайней необходимости.
ГЛАВА 10 Передача обновлении в базу данных
395
Есть еще несколько сложных случаев ''"""цткк ни;: о которых я собираюсь нам рассказать. Как выбрать только что сгенерированные значения автоинкремента? Как передать из объекта Dal as содержащего новые и удаленные записи, изменения в несколько связанных таблиц? Как выявить и обработать неудачные попытки обновления? Как средствами ADO.NET работать с распределенными транзакциями? Подробнее об этих и других сложных ситуациях — в следующей главе.
Предыдущая << 1 .. 165 166 167 168 169 170 < 171 > 172 173 174 175 176 177 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100