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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 82 83 84 85 86 87 < 88 > 89 90 91 92 93 94 .. 260 >> Следующая

DataTable tbl = ds.Tables[0];
Console.WriteLine("Column information for " + tbl.TableName +
" DataTable"); foreaor (DataColumn col in tbl.Columns)
Console.Wrltetine{"\t" + col.ColumnName + " - " + col.DataType.ToSt ring());
Об объектах DataColumn гораздо больше информации, чем имя. положение и тип данных. Но сейчас мы ненадолго отвлечемся от объекта DataColumn и посмотрим, какие же данные DataAdapteruowccwu в новый объект DataTable.
Просмотр данных, возвращаемых объектом DataAdapter
Объект DataTable сильно отличается от соответствующих объектов предыдущих моделей доступа к данным. Объекты Recordset моделей ADO и DAO, объект rdoRe-sultset модели RDO и объект DataReader модели ADO.NET поддерживают концепцию «текущего ряда» данных. Все эти объекты позволяют просматривать результаты запроса по одной записи за раз. Объекты Recordset и rdoResultset позволяют управлять текущей записью при помощи методов типа и
В объекте DataTable ADO.NET реализован иной подход, более соответствующий XML-документам; он позволяет в любой момент времени обратиться к любому узлу дерева. При использовании объекта DataTable всегда доступны все записи — 24 часа в сутки. 7 дней в неделю, 365 дней в году и... ну, в общем, вы поняли идею.
180
Часть III Автономная работа с данными: объект GataSer модели ADO NET
Класс DataTabk- предоставляет свойство Rows, возвращающее набор объектов Dataflow, доступных в объекте Data Table. Теперь я расскажу, как с'помощью объектов DataRow просматривать результаты запроса.
Объект DataRow
Объект DataRow позволяет просматривать и изменять содержимое отдельной записи в объекте DataTable. Чтобы назначить объект DataRoiv конкретной записи в объекте DataTable, воспользуйтесь свойством Rows этого объекта. Это свойство возвращает объект DataRowCollection, содержащий набор объектов DataRow. Как и DataRowCollection позволяет указать порядко-
вый номер элемента, к которому вы хотите обратиться.
Следующий фрагмент кода с помощью метода НИ объекта DataAdapterвыбирает результаты запроса в новый объект DataTable, Затем код назначает первую возвращенную запись объекту DataRoiv и выводит содержимое двух полей этой записи.
Visual Basic .NET
Dim strConn, strSQL As String
strConn = "Provide r=SQLOLEDB;Data Source=(local)\NetSDK;" &
"Initial Catalog=Nortr,wind;Trusted_Connection=Yes;" strSQL = "SELECT OrderlD, CustomerlD, EmployeelD, OrderDate " & _
"FROM Orders"
Dim da As New 01eDbDataAdapter(strSQL, strConn) Dim ds As New DataSetO .da.FilKds, "Orders")
Dim KM As DataTable = ds.Tables<0)
Dim row As DataRow = tbl.Rows(O)
Console.WriteLine("QrderID = " & row("0rderID"))
Console. WriteLine( "CistometID = & row<"CustomerlD"))
Visual C# .NET
string strConn. strSQL;
StrConn = "Provider=S0L0LEDB;Data Source=(local)\\MetSDK; " + "Initial Catalog=Northwind;Trusted_Connectton=Yes;";
strSQL = "SELECT OrderlD. CustomerlD, EmployeelD, OrderDate " + "FROM Orders11 ;
OleDbDataAdapter da = new 01eDbDataAdapter(strSQL, strConn); DataSet ds = new DataSetO; da.FillCds, "Orders");
DataTable tbl = tis.Tables[0]; DataRow row = tbl.fiowsro];
Console.WriteLine("OrderlD = " + row["OrderID" ]); Console,WriteLine("CustomerID = " + row["CustomerID"]);
Как видно, назначив объект DataRow определенной записи объекта
вы можете работать с данными конкретного поля так же, как и с данными объек-
ГЛАВА 6 Работа с объектами DataSet
'81
та DamReadt-r. У объекта DataRow есть пцымсгуппп^чшиьх- снонстко Пет. воз-нр;.нц;ш ндсе содержимое конкретного поля. Можно указывать имя поля, как в предыдущем фрагменте кода, или целое л!>. соответствующее порядковому номеру столбца в объекте DataTable. Как и в случае с объектом DataReader, при поиске по индексу данные возвращаются быстрее, чем при построчном поиске. Я использовал имена столбцов только для того, чтобы сделать код более понятным.
Просмотр содержимого объекта DataRow
Что, если вы хотите написать универсальную процедуру для вывода содержимого ОаШЯо!.г\ Например, процедуру, которая принимает объект DataRow и выводит имена и значения его полей?
Если для этого использовать объект DataReader, следует проверить его значение свойства FieldCountn определить число поля, Затем с помощью свойств Get-Name и Item получить имя и содержимое каждого поля. Однако у объекта DataRow нет аналога свойства PieldCount объекта DataReader.
Вместо него объект DataRow предоставляет свойство Table, возвращающее объект DataTable, который содержит объект DataRow. Это свойство позволяет вернуться к DataTable и получить общее число и имена столбцов. Следующий фрагмент выводит содержимое и имена полей объекта DataRow при помощи '.. ш ¦in it.,i Table данного объекта:
Visual Basic .NET
Private Sub DispIayRowfSyVal row As DataRow)
Dim tbl As DataTable = row.Table
Dim col As DataColumn
For Each col In tbl.Columns
Console. Writeline(vhTab & col. CclminKa«r.a & " & row(col))
Next col End Sub
Visual C# .MET
static void {
DataTable tbl = row.Table;
foreach (DataColumn col in tbl.Columns)
console. writeline("\l" + ool.cqliumtiamfe + + rowl'col]);
Предыдущая << 1 .. 82 83 84 85 86 87 < 88 > 89 90 91 92 93 94 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100