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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 219 220 221 222 223 224 < 225 > 226 227 228 229 230 231 .. 260 >> Следующая

К сожалению, столбец Photo также содержит некоторые дополнительные данные, представляющие собой OLH-wic.tobok Access. Этот заголовок позволяет Access определить, данные какого типа содержит Hi.oli пол 13 — .jpg-файл, документ Word, электронную таблицу Excel и т.д. Как следствие, если вы попытаетесь выбрать содержимое столбца Photo средствами ADO.NET (или ADO, RDO и др.), то не сможете загрузить эти данные в элемент управления или просмотреть содержимое файла в программе для работы с изображениями, например Paint.
ГЛАВА 13 Создание эффективных Windows-приложений 523
Как же отбросить OLE-заголовок Access и оставить только нужные вам данные. Если вкратце, никак Формат OLE-заголовка Access — оригинальная разработка Microsoft, к которой нет документации.
Тем не менее на прилагаемом к книге компакт-диске записано приложение I!i.H'4iplovi.-('Mii >|i V позволяющее заменить содержимое по умолчанию столбца Photo таблицы Employee рисунками в формате .jpg. В папке приложения вы найдете .jpg-файлы с изображениями сотрудников. Приложение загружает эти файлы в БД Ni >пhu nul, выполняя ряд параметризованных запросов.
Кроме данное приложение можно рассматривать как пример загрузки
содержимого файлов в БД средствами параметризованных запросов,
Пример приложения для работы с BLOB-данными
Теперь, когда в Employees есть реальные изображения, мы вкратце рас-
смптркм пример приложения, возвращающего и выводящего эти пкн'-.р.глллтз на Windows-форме. Приложение ShowEmpfoyeesPhotos (рис. 13-11), записанное на прилагаемом к книге компакт-диске, возвращает сведения о сотруднике из БД Northwind в объект DataSet.
Рис. 13-11. HumV! двоичных : в элементе управления I'iciiircBtK
В целях быстрого создания приложения я воспользовался объектом Cz-rre^ty Manager и связанными элементами управления для контроля текущего номера и общего числа записей, а также для упрощения вывода сведений о сотрудниках.
Используемый в приложении объект DataSet включает два отдельных объекта DataTable: один для BLOB-данных и один — для прочих данных. Дочерний объект DatttTabh также включает поле первичного ключа (l-"iiiplo\ecir>.i. упрощающее переход от записи родительского объекта IhtiaYabU к соответствующей записи дочернего объекта DataTable. Кроме того, я добавил в родительский объект №№<¦ Table столбец FetchedPhoto, позволяющий определить, выбрана ли из БД фотография конкретного сотрудника.
При запуске приложение получает из БД стандартные сведения о сотрудниках (значения полей EmployeelD, LastName, FirstName и гд.) Затем, когда пользова-
524
Часть IV Создание эффективных приложений с использованием ADO.NET
тель впервые обратится к записи о конкретном сотруднике, приложение считывает двоичные ШЛИ-дзппые — содержимое поля Илот, (фотографии имеют небольшой размер — всего 22 K("u!'i'i — и поэтому загрузка изображений при запуске приложения не оказала бы резко отрицательного влияния на производительность. Это особенно верно, если размер таблицы, из которой выбираются данные, невелик). Такой способ значительно повышает производительность приложения, выводящего на экран лишь часть возвращаемых записей.
Пользовательские интерфейсы, созданные с применением тяжелой артиллерии ADO.NET
Вы яидс'ш. как встроенные функции связывания с данными Windows-форм упрощают и ускоряют создание пользовательских интерфейсов. Вы также знаете, что
написанный собственноручно код предоставляет более широкие, по сравнению
со связанными элементами управления, возможности управления пользовательским интерфейсом. Кроме тсгс: вы познакомились с преимуществами и недостатками различных стратегий подключения к БД, выполнения запросов к БД, передачи обновлений и работы с ВЮВ-данными.
Вопросы, которые стоит задавать почаще
Вопрос. Следует ли использовать связывание с данными приложении, которое я собираюсь распространять?
Ответ. Я применял •¦ связывание с данными при создании пользовательского интерфейса приложения, чтобы сделать это быстро и с минимальным объемом кода. Как только структура пользовательского интерфейса и схема данных, требуемых приложению, меня устраивает, я решаю, потребуется ли мне связывание с данными в дальнейшем. Если мне нужны более широкие возможности управления, чем те, которые предоставляет сиязыьлине, или я решил, что связывание не поможет сэкономить время на разработку приложения, я заменяю стандартные функции связывания с данными собственным
Вернувшись к описанию этапа 11 разработки приложения-примера: вы увидите, что содержимое заказа выводится в связанном элементе управления Я отключил функции обновления, предоставляемые DataGrid, считая, что на полную замену функциональности DataGrid потребуется много времени, которое
можно было бы потратить с большей пользой.
Вопрос. Можно ли связать элементы управления с объектом DataSet контроля типов?
Ответ. Безусловно. Элементы управления в период разработки разрешается связывать с объектами DataSet без контроля типов, схемы которых также определяются в период разработки при помощи окон свойств. Кроме того, используя водившийся в одном из предыдущих разделов код, элементы управления можно в период выполнения связывать как с объектами DataSet без контроля типов, так и с объектами DataSet со строгим контролем типов.
Предыдущая << 1 .. 219 220 221 222 223 224 < 225 > 226 227 228 229 230 231 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100