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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 260 >> Следующая

Visual Basic .NET
Dim strConn, strSQl. as string
strConn = "Provlder=SOtOLEDB;Data Source=(local)\NetSDK;" &
ГЛАВА 7 Работа с реляционными данными
273
"Initial Catalog=Northwind;Trusted_Connection=Yes;" Dim on As New OleDbConnection(strConn) cn.OpenO
Dim daAuthors, daTitles, daTitleAuthor As OleDbDataAdapter strSQL = "SELECT au.id, au_lname, au.fname FROM authors" daAuthors = New 01eDbDataAdapter(strSQL, cn)
StrSQL = "SELECT title.id, title FROM titles" daTitles = New QleDbDataAdapterfstrSQL, on) strSQL = "SELECT au.id, title.id FROM titleauthor" daTitleAuthor = New OleDbDataAdapter(strSQL, cn) Dim els As New DataSet*) daAuthors. FilHds. "authors") daTitles.Fill(ds, "titles") daTitleAuthor.Fill(ds, "titleauthor") cn.CloseO
ds.Relations.Add("autho rs_titleauthor", _
ds.Tables*"authors").Columns*"au_id"),, _ ds.Tables*"titleauthor").Columns*"au_id"),
False)
ds.Relations.Add*"titles.titleauthor", _
ds.Tables*"titles").Columns*"title.id"),
ds.Tables*"titleauthor").Columns*"title.id"),
False)
Dim rowAuthor, rowTitle, rowTitleAuthor As DataRow
For Each rowAuthor In ds.Tables("authors").Rows
Console. WriteLirie* rowAuthor* "au.lnams") & & rowAuthor*"au_fnamo"))
For Each rowTitleAuthor In _
rowAuthor.QetChildRows*"authors_titleauthor") roWTitle = rcwTitleAuthor.<ietParenMow*"titles_titleauthor") Console.WriteLine(vbTab & rDwTitle{"title")) Next rowTitleAuthor Next rowAuthor
Visual C# .NET
string strConn, strSQL;
strConn = "Provider=SQLOLEDB;Data Source=(local)\\NetSDK; " +
"Initial Catalog=Northwind;Trusted_Connectlon=Yes;"; OleDtoConnection cn = new ulsSbConncctiontsi Conn);
cn.OpenO;
OleDbDataAdapter dsAuthors, dsTitles, dsTitleAuthor;
strSQL = "SELECT au.id, au.lname, au_fname FROM authors"; daAuthors = new 01eDbDataAdapter(strSQL, cn) strSQL = "SELECT title.id, title FROM titles"; daTitles = new 01eDbDataAdapter(strSQL, cn); strSQL = "SELECT au.id. title.id FROM titleauthor"; daTitleAuthor = new OleDbDataAdapterfstrSOL, cn);
274
Часть III Автономная работа с данными: объект DataSet модели ADO.net
DataSet ds = new DataSetO; daAuthors. Fill(ds, "authors"); daTmes.FiliCds, "titles"); daTitleAuthor. Fill(ds, "titleauthor"); cn.Close();
ds.Relations.Add{"authors_titieauthor".
ds.Tables["authors"].Columns["au_id"], ds.Tables["titleautho r"].Columns["au_id"], false);
ds.Relations.Add("titles_titleauthor",
ds.Tables["titles"].Columns["title_id"],
ds.Tables["titleauthor"].Columns["title_id"],
false);
t2;-.sffi=;]i (DataRow icwAurhor in ds. Table$["authors"]. Rows) {
Console.WriteLine(rowAuthor["au_lname"] + "., " +
rowAuthor["au^fname"]); foreach (DataRow lowTiileAuthor in
rowAuthor.GetChildRows('*authors_titleauthor''))
{
DataRow rowTitle;
rowTitle = ; owTitleAuthor.Ge'.ParentRow( "titles„titleai!thor" ) ; Console.WriteLine("\t" + rowTitlef"title"]);
}
1
Использование объектов DataRelation вобъектах0з(эСо/и/пп,основанныхна выражениях
В главе 6 я рассказывал, как с помощью свойства Lxpivysim объекта /utur. 'oli'nin создавать объекты DataColumn, отображающие результаты уравнений типа Quantity I nitl'itu Кроме того, основанные на выражениях объекты DataColumn можно использовать совместно с объектами DataRelation для вычисления агрегатных длины?*, например числа дочерних записей, а также суммы и средних значений дочерних данных.
Далее показаны два примера использования объектов DataRelation в сиопстис Expression объекта DataColumn. Сначала код создает отношение между объектами DataTabie Orders и Order Details, а затем добавляет в объект ШШШШШOrder Details вычисляемый объект DataColumn ItemTotal. После этого код добавляет два основанных на выражениях объекта использующих новое отношение.
Первый объект DataColumn возвращает число дочерних записей. Чтобы получить его, код задает свойству Шрт$Ш1 объекта DataColumn следующее значение:
Count(Child.ProductID)
Данный синтаксис можно использовать для ссылки на дочерние данные, только если у родительского объекта DataTabie есть единственный связанный дочерний
ГЛАВА 7 Работа с реляционными данными
275
объект Если дочерних объектов несколько, воспользуйтесь таким син-
таксисом:
Count(Cnild(RelationName).ProductID)
Второй объект возвращает сумму значений объекта l)ai«G,h и;ц
ItemTotal в дочернем объекте DataTable. Свойству Expression данного объекта DataColumn задается значение, похожее на значение одноименного свойства первого объекта DataColumn:
Sum*Child.ItemTotal)
Visual Basic NET
Dim As New DataSei*)
ds.Relations.Add("OrdersOrderOetails",
ds.Tables*"Orde rs").Columns*"0 rderlD"},
ds.Tables*"Order Details").Columns*"OrderID"))
ds.Tables*"Order Details").Columns.Add("ItemTotal", GetType(Deoiraal),
"Quantity -
ds.Tables*"Orders"),Columns.Add*"Numltems", GetType*Integer),
"Count(Child.ProductID)") ds.Tables*"Orders").Columns.Add*"OrderTotal", GetType*Decimal),
"Sum(Child.ItemTotal)")
Visual C# .NET DataSet ds = new DataSel*};
ds.Relations.Add*"0rders0rderDetails",
ds.Tables["Orders"].Columns["Orde rID" ], ds.Tables["Order Details"].Columns["OrderID"]);
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100