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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 210 211 212 213 214 215 < 216 > 217 218 219 220 221 222 .. 260 >> Следующая

Есть несколько способов структурировать такой запрос. Бот три из них:
SELECT ¦¦ .OrderlD, D.ProdjotID, D.UnitPnce, D. Quantity FROM Orders 0 INNER JOIN [Order Details] D
ON 0.OrderlD = D.OrderlD WHERE 0. CustomerlD = ?
SELECT OrderlD, ProductlD, bnllPrice, Quantity FROM [Order Details] WHERE OrderlD IN (SELECT OrderlD FROM Orders WHERE CustomerlD = ?)
SELECT D.OrderlD, D. ProductID, D.UnitPrice, D. Quantity FROM [Order Detailsl D, Orders 0 WHERE D.OrderlD = 0,OrderlD AND 0.CustomerlD = ?
Согласно SQL Query Analyzer, выводящему примерный план выполнения, SQL Server создает для каждого из этих запросов одинаковый план, По двум причинам я отдаю предпочтение синтаксису третьего запроса. Во-первых, он самый интуитивно понятный. Во-вторых, мастер Data Adapter Configuration Wizard не способен обработать такой синтаксис из-за наличия параметра в подзапросе. (Toxi >-/КС. что мастер использует яреамуагстзгдио синтаксис INNER JOIN, И хотя при создании приложения я использовал синтаксис третьего из приведенных выше запросов, мастер преобразовал мой SQL-оператор согласно синтаксису первого запроса. Каждому — свое.
Создав с помощью этого запроса новый объект OtcDhliataAdapatvr назовите его dpTWiiih:
Добавление объекта DataTable Order Details в класс DataSet со строгим контролем типов
Добавив объект>teiдля sbroopк;,г записей из мблпцы Order мож-
но воспользоваться диалоговым окном Generate Dataset и добавить в класс DataSet со строгим контролем типов новый объект DataTable. Подробнее - на рис. 13-7 Выберите из списка имеющихся объектов DataSet нужный. Убедитесь, что в списке таблиц в средней части диалогового окна помечена только одна таблица — та. которая соответствует новому объекту DataAdapter.
Щелкните ОК, и Visual Studio .NET добавит новый объект DataTable в имеющийся класс DataSet со строгим контролем типов. Если оставить помеченными обе таблицы, Visual Studio .NET перезапишет объект DataTable Orders, имеющийся в объекте DataSet со строгим контролем типов. Это означает, что значения свойств Autoliicre-
пропадут. Сбрасывать эти свойства нетрудно, но утомительно.
Теперь, когда класс DataSet со строгим контролем типов содержит объекты DataTable, соответствующие таблицам Orders и Order Details, можно добавить объект
ГЛАВА Создание эффективных Windows-приложений 503
fMlaRi-U'tiru!, определяющий между этими двумя объектами DataTable на основе столбца OrdcrlD, В окне Solution Explorer дважды щелкните .xsd-файл класса, чтобы запустить конструктор XML Schema Designer. Перетащите столбец CustomerlD из объекта DataTable Orders в объект DataTable Order Details. Примите предлагаемые конструктором значения параметров по умолчанию.
Ge fie-г oli» Dataset
¦ян-ягate^sssthat ггсл'ок-tit«peofvfd!аЫ« ChooMadataHt;
•»¦ Fjjtnj !':Ья*е|!3...ад"1-ог.йг13
Г &нп I, SB» ~
Crrass which tablets) add Г: Or .-hrMe'.
anJwMabCdafetaSsj
Orders (daOrdi О
fidd ай c^sot to the designer.
С4ГКв1
Help
Рис. 13-7. Добавление объекта DataTable Order Details в класс DataSet со строгим контролем типов
Приложение также добавляет вычисляемое поле, отображающее общую стоимость заказанных единиц конкретного товара, Вы можете сделать то же спин:, добавив в объект DataTable Order Details новый столбец. Задайте тип данных этого столбца как Decimal и задайте свойству Expression значение UnitPrice' Quantity,
Закройте конструктор и сохраните изменения.
Добавление элемента управления DataGrid, отображающего дочерние данные
Связать элемент управления DataGrid с данными просто. Достаточно задать
значения двух свойств — DataSourceu DataMember,
Добавьте на форму элемент управления DataGrid и задайте ему имя gridDetails. В окне Properties выберите свойство DataSource. Расткройте список справа, чтобы просмотреть перечень доступных источников данных. Вы увидите объект DataSet и отдельные объекты DataTable. Выберите свойство DataMember. Для него также имеется список возможных значений (рис. 13-8). Раскрыв в списке узел объекта DataTable Orders, вы увидите созданный вами ранее объект DataRelation. Если задать свойству DataMember значение DataRelation, элемент управления Data-
Grid отобразит только дочерние записи, используя объект DataRelation.
Чтобы связать элемент управления DataGrid с данными в период !;•.:¦•:!! •'•••!. воспользуйтесь таким кодом:
504
Часть IV Создание эффективных приложений с использованием ADO.NFT
Visual Basic .NET
gridDetails. DataSource = d$Chapterl3
gridOetails.DataMember = "Orders.0rder^x0020_Details"
Visual C# .NET
gridDatails.DataScurce = dsCtiaptftrUl;
gridDetails. DataHember = "Orders.0rder_x0020_Details";
I Properties » X
. lirolbsiaii* "v.-< em.Windows, Fr.rni, O^Eiiii "i
¦¦¦ ColumnHeadersVlsibl. True - |
(none) ^ _ r
ЙЗЕ22ЭИИ | _K0020_D«rtaib "
? Oder Details
:- [0 Orders ¦5§ (tons)
: ¦ ^ ^ Contra;
;. ^ridLineStyle Solid
Щ HeaderBackCobr Control
IS MeaderPo": Microsoft Sa-s Serif, 3
HeaderForeColor 1 ControlTeKt
iKl'vCe '-г, Control
! Лис- Farrrijt DataMembef
Предыдущая << 1 .. 210 211 212 213 214 215 < 216 > 217 218 219 220 221 222 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100