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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 15 16 17 18 19 20 < 21 > 22 23 24 25 26 27 .. 260 >> Следующая

Visual Basic .NET
Dim col As New DataColumnO
With col
. Colum.iName = " 1 'emTotaI "
.Datatype = QetType(Oecimal)
.Expression = "UnitPrice * Quantity-End With
Visual C#
DataColumn col = new DataColumnO; ¦ool.ColumnName = "ItemTotal"; =
col.Expression = "UnitPrice * Quantity";
Набор Columns и объекты DataColumn можно ориентировочно сопоставить
набору Fields и объектам Field ADO и DAO.
14 Часть Основы работы с Microsoft ado.net
Объект Constraint
Класс DataTable также позволяет определять на локальном содержимом объектов DataTable различные ограничения. Например, можно создать объект Constraint, гарантирующий, что значений поля или нескольких полей будут уникальны в пределах DataTable. Объекты Constraint хранятся в наборе Constraints объекта DataTable.
Объект OataRow
Обратиться к реальным значениям, хранящимся объекте DataTable, позволяет набор Rows, содержащий объектыDataRow. Чтобы просмотреть содержимое конкретного поля определенной записи, воспользуйтесь свойством Нет соответствующего объекта DataRow и считайте значение нужного поля. Класс DataRow предоставляет несколько перегруженных определений свойства Item. Выбрать поле для просмотра можно, передав свойству Item объекта DataRow имя, порядковый номер или сопоставленный с полем объект DamColumn. Item - свойство объекта DataRow по умолчанмю. и поэтому его разрешается использовать неявно:
Visual Basic .NET
Dim row As DataRow
row = MyTable. Rows(Q)
Console.WriteLine(rowCO))
Console.WriteLine(row("CustomerID"))
Console.WriteLlneC rowCMyTable.Columns("Custome rlD")))
Visual C#
DataRow row;
•¦0\n = MyTable. RowSlO];
Console.WriteLine(row[0]);
Console.WriteLine{row["CustomerlD"]);
Console.WriteLine(row[MyTablB.Columns!"CustomerlD"}]);
Вместо того чтобы вернуть содержимоетолько текущей записи, DataTable предоставляет через набор Rows содержимое всех записей данных. Это заметно отличается от поведения объектов Recordset ADO и DAO, которые предоставляют одновременно только одну запись данных и требуют перемещаться по их жимому с помощью методов типа Ъ^уДчау, < .[сдующин фрагмент кода в цикле перемещается по содержимому объекта Recordset ADO:
«Классический» Visual Basic
Dim strConn As String, strSQL As String Dim rs As ADODB.Recordset
strConn = "Provider=SDLOLEDB;Data Source=(local);..." strSOL = "SELECT CustomerlD, CompanyNante FROM Customers" Set rs = New ADODB.Recordset rs,CurscrLocstion = adUseClient
rs.Open strSQL, strConn, adOpenStatic, adLockReadOnly, adCmdText Do While Not rs.EOF
ГЛАВА 1 Обзор ADO.NET 15
Msg?ox rsC'CustomerlD") Га.MoveNext
Loop
Для просмотра содержимого объекта Daifiti'.hk ADO.NET следует перемещаться по объектам DataRow из набора Rows:
Visual Basic .NET
Dim strSCL, strCcro As String
Dim da As New 01eDbDataAcapter(strSUl. strConn)
Dim tbl As New DataTable()
da.Fill(tbl)
Dim now As DataRow
For Each row In tbl,Rows
Console.WriteLlne(row(0})
Next row
Visual C#
string s-rECL, strConn;
OleDbCatsAoapter da = new 0)8DbD,at8Adapt3<-(strSQl, strConn); DataTable tbl = new DataTableO;
da.Fill(tbl);
foreacn (DataRow in tbJ.Rows) Console.WriteLine(row[0]);
Объект DataRow является также отправной точной обновления. Например, можно вызвать метод _ , ^ " изменить посредством свойства
чение одного из полей записи и затем вызвать метод HudEdii. чтобы сохранить сделанное изменение. Метод Ссл'л-'Е-ар. объекта DataRow отмеияо все изменения, сделанные за текущий сеанс редактирования. Кроме того, DataRow предоставляет методы для удаления элементов из набора Rows,
Когда вы изменяете содержимое записи, DataRotv к&шмруст эти изменения, чтобы позже передать их в БД. Таким образом, при изменении значения поля записи DataRow хранит оригинальное и текущее значения что обеспечивает успешное обновление содержимого БД. При наличии отложенных изменений свой-<Л№1 Item объекта DataRow позволяет просматривать оригинальные значения полей.
Объект DataSet
Как следует из имени, объект DataSet содержит набор данных. DataSet можно рассматривать в качестве контейнера объектов DataTable (хранящихся в наборе Tables объекта DataSet). Помните: ADO.NET предназначена упростить разработку крупных многоуровневых приложений для работы с БД. Иногда требуется обратиться к компоненту на промежуточном сервере и выбрать содержимое нескольких таблиц. Вместо того чтобы многократно обращаться к серверу и выбирать данные по одной таблице за раз, можно поместить все данные в объект DataSet и вернуть
16 Часть I Основы работы с Microsoft ADO NET
его за один вызов. Тем не менее объект Ш:ЬМт — нечто больше, чем просто контейнер объектов DataTabie.
Данные в объекте DataSet отсоединены от БД. Все изменения данных просто кэшируютгн в объектах DataRow. Когда придет время передать эти изменения в БД, вероятно, окажется неэффективным пересылать промежуточному серверу весь объект DataSet, Стоит воспользоваться методом GetChanges и извлечь из DataSet лишь измененные данные. В результате снизится объем данных, передаваемых между процессами и серверами.
Предыдущая << 1 .. 15 16 17 18 19 20 < 21 > 22 23 24 25 26 27 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100